【发布时间】:2017-04-07 09:51:15
【问题描述】:
我有一个数组,根据某些条件从其中删除某些元素,当我删除元素时,我重新启动 for 循环,因为索引已刷新。
var k;
for( k=0 ; k < this.j_data.length;k++){
if(condition === true){
this.j_data.splice(k, 1);
k = 0; // restart
}
}
我的数组 this.j_data 有两个元素都应该被拼接删除但是在第一个元素被删除之后,最后一个被循环跳过。
知道缺少什么
【问题讨论】:
-
好吧,
k++在k <检查之前运行,所以,改为设置k = -1 -
考虑使用
filter代替:this.j_data = this.j_data.filter(function(item){return !condition}),除非您有特殊原因要修改原始数组。
标签: javascript