数组塌陷问题

2019-10-11  本文已影响0人  瑞破破

先举个小栗子

我们想用一个循环,把数组中的每一项都删掉,但是出现了问题,循环结束后,并没有全部删除。

let arr = [1,2,3]
for(let i=0;i<arr.length;i++){
   arr.splice(i,1)
}
console.log(arr)    //  [2]

解释:
第一次循环,i=0 ; arr.length=2; 循环后,删除第一项
此时,数组变为[2,3];
继续第二次循环,i=1 ; arr.length=2 循环后,删除第二项
此时发现,数组的第二项是数字3;把第二项删除,最后剩一个数字2
所以:
循环每结束一次,删除一项,数组的length以及每一项的下标都会改变,
最后导致达不到预期的效果

上一篇下一篇

猜你喜欢

热点阅读