作者:Junjie_Liu85 | 来源:互联网 | 2023-05-24 21:57
删除数组中元素的方法有delete,splice;这里先记录splicefunctionbantchDelete(taskList,deleteTaskIds){for(leti0
删除数组中元素的方法有delete,splice;这里先记录splice
function bantchDelete (taskList,deleteTaskIds){
for (let i=0; i<taskList.length;){
let task = taskList[i];
//根据id删除
if (deleteTaskIds.indexOf(task.id)!==-1) {
taskList.splice(i,1);
continue;
}
i++;
}
return taskList
};
var arr1 = [
{ id: 1, name: "apple" },
{ id: 2, name: "orange" },
{ id: 3, name: "pear" }
];
var ids = [1, 3];
console.log(bantchDelete(arr1,ids)) //[{ id: 2, name: "orange" }]
最开始做批量删除的时候,尝试写了for循环去遍历,然后直接用splice删除,但是splice删除之后会改变原数组的length,然后再遍历原数组的时候,遍历的顺序就不对了,这里采用continue的方式,当删除一个元素的时候跳出本次循环,taskList的length改变了,遍历的索引 i 跳过本次循环,执行下次的遍历。
参考文章