项目场景:
表格选择删除对应数组如下:
问题描述:
提示:一开始按照另一个数组的下标来作为删除条件,但是达到的效果就是数据数组删除后改变了length,也改变了下标,导致如果删除三个,只有两个删掉了,中间那个因为数据删除,往前移了一个位置导致他变成了下标0的数据但是循环已经到了1这里,就会出错漏掉
@Override
for (let index = 0; index < this.arr2.length; index++) {
this.arr1[this.arr2[index]].splice(index,1)
}
解决方案:
循环的时候给arr1里添加一个值,用来标识是否删除,之后在循环arr1本身,删除一个i–一次再判断删除,就可以避免隔过去
for (let index = 0; index < this.arr2.length; index++) {
this.arr1[this.arr2[index]].isdel = false;
}
for (let i = 0; i < this.arr1.length; i++) {
if(this.arr1[i].isdel==false){
this.arr1.splice(i,1)
i--
}
}