玖叶教程网

前端编程开发入门

es6如何快速地删除数组元素(es6set方法数组去重)

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);

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言