數組forEach函數

forEach()遍歷注意事項:數組

1.未被設置的元素不會被遍歷到

var a = [1, 2, 3, 4];
a[6] = 10;
a.forEach(function (value, index) {
    console.log(value);//1,2,3,4,10
});
console.log(a);//[1,2,3,4,empty*2,10]

 

 

var a = [1, 2, "", 4];
a.forEach(function (value, index) {
    console.log(value);//1,2,"",4,
});
console.log(a);//[1,2,"",4]

空元素能被遍歷到函數

 

var a = [1, 2, undefined, 4];
a.forEach(function (value, index) {
    console.log(value);//1,2,undefined,4,
});
console.log(a);//[1,2,undefined,4]

undefined能被遍歷到spa

2.新添加的元素不會被遍歷到

var a = [1, 2, 3, 4];
a.forEach(function (value, index) {
    if (index == 0) a[6] = 10;
    console.log(value);//1,2,3,4
});
console.log(a);//[1,2,3,4,empty*2,10]

 3.遍歷時,刪除的元素不會被遍歷到

var a = [1, 2, 3, 4];
a.forEach(function (value, index) {
    if (index == 2) delete a[3];
    console.log(value);//1,2,4
});
console.log(a);//[1,2,3,empty]

4.遍歷時,用shift()方法刪除元素,則會對後續遍歷產生影響 

var a = [1, 2, 3, 4];
a.forEach(function (value, index) {
    if (index == 1) a.shift();
    console.log(value);//1,2,4
});
console.log(a);//[2,3,4]

 shift()函數會從新調整數組長度,致使原下標對應的值發生改變code

5.後續沒有被遍歷到的元素能修改值

var a = [1, 2, 3, 4];
a.forEach(function (value, index) {
    if (index == 0) a[1] = 10;
    console.log(value);//1,10,3,4
});
console.log(a);//[1,10,3,4]

  6.已經遍歷過得項,再修改值,則來不及了

var a = [1, 2, 3, 4];
a.forEach(function (value, index) {
    if (index == 2) a[1] = 10;
    console.log(value);//1,2,3,4
});
console.log(a);//[1,10,3,4]
相關文章
相關標籤/搜索