📌  相关文章
📜  从 Javascript 中的数组中删除特定对象 (1)

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

从 JavaScript 中的数组中删除特定对象

在 JavaScript 中,我们可以使用数组来保存多个对象或值。有时候我们需要从数组中删除特定对象,这时该怎么做呢?本篇文章将介绍几种从 JavaScript 中的数组中删除特定对象的方法。

方法一:使用 filter()

filter() 是数组的原型方法之一,可以用来过滤数组中的元素,返回一个新的数组。我们可以利用这个特性来删除特定对象。

const arr = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 3, name: 'orange'}];
const objToDelete = {id: 2, name: 'banana'};
const newArr = arr.filter((obj) => obj !== objToDelete);

console.log(newArr); // [{id: 1, name: 'apple'}, {id: 3, name: 'orange'}]

在上面的代码中,我们首先定义一个数组 arr,里面包含三个对象。然后定义一个对象 objToDelete,表示要从数组中删除的对象。接着使用 filter() 方法过滤数组 arr,将不等于 objToDelete 的元素保留下来生成一个新的数组 newArr。最后通过 console.log 打印出来,可以看到 newArr 中已经删除了 objToDelete 对象。

方法二:使用 splice()

splice() 是数组的原型方法之一,可以用来从数组中删除元素。我们可以利用这个特性来删除特定对象。

const arr = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 3, name: 'orange'}];
const objToDelete = {id: 2, name: 'banana'};
const index = arr.findIndex((obj) => obj === objToDelete);

if (index !== -1) {
  arr.splice(index, 1);
}

console.log(arr); // [{id: 1, name: 'apple'}, {id: 3, name: 'orange'}]

在上面的代码中,我们首先定义一个数组 arr,里面包含三个对象。然后定义一个对象 objToDelete,表示要从数组中删除的对象。接着使用 findIndex() 方法找到 objToDelete 对象在数组 arr 中的下标 index。如果 index 不等于 -1,说明在数组 arr 中找到了 objToDelete 对象,我们就可以使用 splice() 方法从数组 arr 中删除该对象。最后通过 console.log 打印出来,可以看到数组 arr 中已经删除了 objToDelete 对象。

总结

本篇文章介绍了两种从 JavaScript 中的数组中删除特定对象的方法:使用 filter() 和使用 splice()。使用 filter() 可以生成一个新的数组,但原数组并没有发生改变;使用 splice() 可以直接在原数组中删除元素。具体使用哪种方法可以根据具体情况来决定。