如果在遍历数组的过程中删除一个数组元素,那么会导致该数组元素后面的索引下标发生改变。如果按照原方式删除,那么一定会出现问题。
解决方式:在删除后修改循环条件。
var deleteSomeItems = [1,2,3,4,5,4,3,2,1];// 例如我们需要删除偶数元素
var length = deleteSomeItems.length;
for(var i=0;i<length;i++){
if(deleteSomeItems[i]%2 == 0){
// 删除元素
deleteSomeItems.splice(i,1);
// 修改i的值!
i--;
}
}
console.log(deleteSomeItems);