JS快速删除数组中的指定元素

有这么一个数组:

const arr = [
  { id: 1, value: 2 },
  { id: 2, value: 3 },
  ...
];

想删除数组里 id=8 的元素,如何方便快捷的实现。

findIndex 

findIndex() 方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回 -1

arr.splice(arr.findIndex(item => item.id === 8), 1)

这个有问题,假如返回 -1 则直接把数组的最后一项给删除了,所以需要判断存在(不为 -1 )才执行。

filter

filter() 方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

arr = arr.filter(({ id }) => id !== 8);

封装一个遍历的方法

arr.forEach((val, i) => {
  if (val.id === 8) {
    arr.splice(i, 1)
  }
})


未经允许不得转载:w3h5 » JS快速删除数组中的指定元素

赞 (0)
分享到: +

评论 沙发

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)