4

在foreach中增加数组新元素

在foreach中增加数组元素,不会导致循环增加,循环次数还是原来数组的长度。

var arr=[1,2,3];
arr.forEach((item)=>{
    
    if(item==2){
        arr.push(7);
        arr.push(8);
    }
    console.log(item);
});
console.log(arr.length);

结果是:1,2,3,5,新增的7、8元素并没有被循环,但是数组的长度确实是增加了。

在foreach中删除属于元素

和增加不同的是,中数组中减少元素却会减少循环次数,并且删除的元素后面的元素会被“跳过”

var arr=[1,2,3];
arr.forEach((item)=>{
    if(item==2){
        arr.splice(1,1);
        
    }
    console.log(item);
});
console.log(arr.length);

输出的结果:1,2,2

第二个被删除了,长度已经变成了2,所以循环到第二次就停止了,导致第三个元素没被循环,发生“跳过”现象。但由于删除时,获取到的当前元素已经是第二个,所以输出的还是2.

感觉总结的有价值的同学请点个赞,给个鼓励,给点动力,谢谢支持!!!


code_sir
543 声望10 粉丝