📌  相关文章
📜  如何从数组中删除对象 javascript (1)

📅  最后修改于: 2023-12-03 15:08:15.836000             🧑  作者: Mango

如何从数组中删除对象 JavaScript

在 JavaScript 中,要从数组中删除特定对象,你可以使用 splice() 方法或 filter() 方法。

splice() 方法

splice() 方法可以删除数组中的元素,并将剩余的元素重新排序。它接受两个参数:要删除的元素的开始索引和要删除的元素的数量。要从数组中删除特定对象,你需要知道该对象在数组中的索引。

let arr = [{name: 'John'}, {name: 'Mary'}, {name: 'Jane'}];

// 找到要删除的对象在数组中的索引
let index = arr.findIndex((obj) => obj.name === 'Mary');

// 删除对象
if (index > -1) {
  arr.splice(index, 1);
}

console.log(arr); // [{name: 'John'}, {name: 'Jane'}]

在上面的代码中,findIndex() 方法用于查找要删除的对象在数组中的索引。此方法接受一个回调函数,并在每个数组元素上调用该函数。回调函数返回 true 时,findIndex() 方法会返回当前元素的索引。否则,它会遍历到数组的末尾并返回 -1。

一旦你知道了要删除的对象在数组中的索引,就可以调用 splice() 方法来删除它。

filter() 方法

filter() 方法可用于创建一个新数组,其中只包含满足某些条件的元素。可以使用该方法创建一个新数组,并排除与要删除的对象相同的对象。

let arr = [{name: 'John'}, {name: 'Mary'}, {name: 'Jane'}];

// 创建新数组,其中不包含要删除的对象
arr = arr.filter((obj) => obj.name !== 'Mary');

console.log(arr); // [{name: 'John'}, {name: 'Jane'}]

在上面的代码中,filter() 方法用于创建一个新数组,其中不包含要删除的对象。此方法接受一个回调函数,并在每个数组元素上调用该函数。回调函数返回 true 时,filter() 方法会将当前元素添加到新数组中。否则,它会从新数组中排除该元素。

使用 filter() 方法时需要注意,它会创建一个新的数组,并不会改变原始数组。

现在你已经知道了如何从数组中删除对象,你可以根据自己的需求选择使用 splice() 方法或 filter() 方法。