let arr = [ { id: 1, value: 2 }, { id: 2, value: 3 }, { id: 3, value: 3 }, { id: 4, value: 3 }]
如何快速删除数组中id=4的元素方法
1:第一种方法filter()
const newArr = arr.filter((obj) => obj.id !== 4);
console.log(newArr); // [ { id: 1, value: 2 }, { id: 2, value: 3 }, { id: 3, value: 3 }]
2: 第二种方法findIndex()
const newArr2 = arr.splice( arr.findIndex((v) => v.id === 4), 1 );
console.log(newArr2); // [ { id: 4, value: 3}]
console.log(arr); // [ { id: 1, value: 2 }, { id: 2, value: 3 }, { id: 3, value: 3 }]
我更推荐第一种写法,第二种写法有一个小问题,如果删除一个不存在的值的时候,findIndex会返回-1,此时splice会删除最后一个值,导致错误,需要前面加一个判断才行。
// 优化后代码
const index = arr.findIndex((v) => v.id === 4);
const newArr2 = index > -1 && arr.splice(index, 1);