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


未经允许不得转载:Web前端开发资源网 » JS快速删除数组中的指定元素

推荐阅读:

WebStorm 自定义字体、语法高亮及导入导出用户设置

jQuery.dotdotdot多行文本省略号插件的使用方法

Linux下导入SQL文件及MySQL常用命令

input[type=file]去掉“未选择任何文件”及样式改进

分享一些实用的Chrome DevTools技巧

赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

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