首页 > web前端 > js教程 > 如何高效地从 JavaScript 数组中删除对象?

如何高效地从 JavaScript 数组中删除对象?

Mary-Kate Olsen
发布: 2024-11-23 10:32:10
原创
929 人浏览过

How to Efficiently Remove Objects from JavaScript Arrays?

从 JavaScript 数组中删除对象

从数组中删除对象是 JavaScript 中的常见操作。有多种方法可以实现此目的,每种方法都有自己的优点和缺点。

非变异方法

  • Array.filter(): 创建一个仅包含通过指定测试的元素的新数组。例如:
let someArray = [{name: "Kristian", lines: "2,5,10"},
                 {name: "John", lines: "1,19,26,96"}];

let noJohn = someArray.filter(el => el.name !== "John");
登录后复制
  • Array.find(): 返回第一个匹配元素,如果未找到匹配,则返回未定义。使用它来检索要删除的特定对象。例如:
const kristian = someArray.find(el => el.name === "Kristian");
登录后复制

变异方法

  • Array.splice(): 从其中删除一系列元素数组,从指定索引开始。例如:
someArray.splice(someArray.findIndex(el => el.name === "John"), 1);
登录后复制
  • Array.pop(): 从数组中删除最后一个元素。
  • Array.shift (): 删除第一个元素array.
  • Array.length = newLength: 重新分配数组的长度,截断任何多余元素。

选择最佳方法

从数组中删除对象的最佳方法取决于您的具体情况需要:

  • 非变异方法创建新数组并且不影响原始数组。如果您想保持原始数组完整,这是理想的选择。
  • 变异方法直接更改原始数组。这样效率更高,但可能会导致不需要的修改。

附加说明

  • Array.findIndex(): 使用这是为了查找要删除的对象的索引,因为 splice() 和 pop() 需要索引参数。
  • Array.filter(): 可用于通过在过滤函数中指定多个条件来一次删除多个元素。

示例

以下代码使用filter()方法创建一个不包含名称的对象的新数组“克里斯蒂安”:

const someArray = [{name: "Kristian", lines: "2,5,10"},
                 {name: "John", lines: "1,19,26,96"}];

const noKristian = someArray.filter(el => el.name !== "Kristian");

console.log(noKristian);
// Output: [{name: "John", lines: "1,19,26,96"}]
登录后复制

以上是如何高效地从 JavaScript 数组中删除对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板