数组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能被遍历到

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()函数会重新调整数组长度,导致原下标对应的值发生改变

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]

 

转载于:https://www.cnblogs.com/bibiafa/p/9391190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值