有这么一个数组:
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快速删除数组中的指定元素