正向思维的话,在循环中删除了第一条元素后,整个数组的长度都变了,第二个索引会删到那个元素后面的位置
用for循环或者forEach遍历数组的话,在方法体内部splice都得不到正确的结果,解决方法是使用逆向循环
1 //数组的批量删除,逆向循环 2 for (let i = this.confirmedData.length - 1; i >= 0; i--) { 3 for (let j = this.deleteorganizaLise.length - 1; j >= 0; j--) { 4 if (this.confirmedData[i].deptId === this.deleteorganizaLise[j].deptId) { 5 this.confirmedData.splice(i, 1) 6 } 7 } 8 }