当前位置: 首页 > Web前端 > JavaScript

for循环在for循环内部使用了splice

时间:2023-03-26 21:17:37 JavaScript

,发现有些元素没有遍历过。出现这个问题的原因是splice会修改原数组的长度,导致下标发生变化。方案一:vardata=[1,2,3,4,5,6,7]for(vari=data.length-1;i>=0;i--){if(data[i]>5){data.splice(i,1)}}使用倒序可以完美解决这种情况。方案二:vardata=[1,2,3,4,5,6,7]for(vari=0;i5){data.splice(i,1)}else{i++}}数组长度改变时,不改变下标方案三:深拷贝原数组,遍历新数组,操作原数组