📌  相关文章
📜  js 按值从数组中删除对象 - Javascript (1)

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

删除数组中的对象

在 JavaScript 中,我们可以使用不同的方法从数组中按值删除对象。以下是几种常见的方法:

方法一:使用 filter() 方法
let array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Sam' }];

// 通过筛选不包含要删除对象的新数组来删除对象
let newArray = array.filter(obj => obj.id !== 2);

console.log(newArray);

这将输出:

[ { id: 1, name: 'John' }, { id: 3, name: 'Sam' } ]

在上面的例子中,我们使用了 filter() 方法来创建一个新的数组 newArray,该数组不包含 id 为 2 的对象。这样就实现了从原始数组中删除对象的目的。

方法二:使用 splice() 方法
let array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Sam' }];

// 通过找到要删除对象的索引,并使用 splice() 方法来删除该对象
let index = array.findIndex(obj => obj.id === 2);
if (index !== -1) {
  array.splice(index, 1);
}

console.log(array);

这将输出:

[ { id: 1, name: 'John' }, { id: 3, name: 'Sam' } ]

在上面的例子中,我们使用了 findIndex() 方法来找到 id 为 2 的对象的索引。然后使用 splice() 方法,从数组中删除该对象。

方法三:使用 forEach() 方法
let array = [{ id: 1, name: 'John' }, { id: 2, name: 'Jane' }, { id: 3, name: 'Sam' }];

// 通过遍历数组,将要删除的对象从原始数组中排除
let newArray = [];
array.forEach(obj => {
  if (obj.id !== 2) {
    newArray.push(obj);
  }
});

console.log(newArray);

这将输出:

[ { id: 1, name: 'John' }, { id: 3, name: 'Sam' } ]

在上面的例子中,我们使用了 forEach() 方法来遍历原始数组,并将 id 不等于 2 的对象添加到一个新数组中。这样就实现了从原始数组中删除对象的目的。

总结:

  • 使用 filter() 方法可以创建一个新数组,该数组不包含要删除的对象。
  • 使用 splice() 方法可以在原始数组上直接删除指定的对象。
  • 使用 forEach() 方法可以遍历原始数组,并将目标对象排除在新数组之外。

根据你的需求,你可以选择适合你的情况的方法来删除数组中的对象。