关于javascript:for循环内部使用splice

7次阅读

共计 315 个字符,预计需要花费 1 分钟才能阅读完成。

for 循环外部应用 splice,发现有些元素并没有遍历,呈现这个的问题起因是因为,splice 会批改原数组的长度,导致下标发生变化。
解决办法 1:

var data = [1,2,3,4,5,6,7]
for(var i = data.length - 1; i >=0; i--) {if(data[i] > 5) {data.splice(i, 1)
   }
}

应用倒序,能够 完满 解决掉这种状况
解决办法 2:

var data = [1,2,3,4,5,6,7]
for(var i = 0; i < data.length;) {if(data[i] > 5) {data.splice(i, 1)
    }else {i++}
}

当数组长度发生变化的时候,不扭转下标
解决办法 3:
深拷贝原数组,遍历新数组,操作原数组

正文完
 0