forEach 里面删除自身

2021-07-07  本文已影响0人  王善良_
const arr=[1,2,3,4,5];
arr.forEach((item,i)=>{
    if(item===3){
      arr.splice(i,1);
  }
  console.log(item)
})
image.png

在循环里面删除自身的3,循环运行到3这里的时候删掉了3,这个时候数组只剩[1,2,4,5]

但是因为删掉了3,所以4,5往前面挪了位置,4代替了3的位置,第三次的循环已经结束了,所以4不会执行,然后进入第四次循环,然而5顶替了4的位置,所以第四次循环log出的是5.

结论:在forEach里面删除自身,会让循环次数减少一次

上一篇下一篇

猜你喜欢

热点阅读