js中循环删除某一项会导致下标出现变化,因此splice方法删掉一个元素后,后面紧邻的元素不会被遍历到,就会存在想删除的数据没删除掉,在i++的 位置做了判断,flag为true则++,为false则不变。
for(var i=0,flag=true,len=this.rowArr.length;i<len;flag ? i++ : i){
if( this.rowArr[i]&&this.rowArr[i].date==row.date&&this.rowArr[i].actType==row.actType ){
this.rowArr.splice(i,1);
flag = false;
} else {
flag = true;
}
}
本文探讨了在JavaScript中使用for循环删除数组元素时,由于下标变化可能导致的遗漏问题。通过设置标志变量flag,当满足特定条件时阻止i递增,确保所有符合条件的元素都能被正确删除。这种方法在处理动态数据时十分关键,避免了遍历过程中的逻辑错误。

被折叠的 条评论
为什么被折叠?



