📅  最后修改于: 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()
方法可以遍历原始数组,并将目标对象排除在新数组之外。根据你的需求,你可以选择适合你的情况的方法来删除数组中的对象。