📅  最后修改于: 2023-12-03 15:08:15.836000             🧑  作者: Mango
在 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()
方法。