📅  最后修改于: 2023-12-03 15:25:09.033000             🧑  作者: Mango
在 JavaScript 中,我们可以使用 Array.prototype.filter()
方法来定位并删除数组中的对象。这个方法将返回一个新的数组,其中包含符合条件的元素。
let newArray = oldArray.filter(callbackFunction);
其中,oldArray
是原数组,callbackFunction
是回调函数,用于测试每个元素是否符合条件。如果符合条件,就会将元素添加到新数组中。
假设现在有一个人员名单数组,其中包含多个对象,每个对象都有一个 name
属性。我们想要从数组中删除名为 “Alex” 的对象。我们可以按照以下方式使用 Array.prototype.filter()
方法:
const persons = [
{ name: "John", age: 30 },
{ name: "Alex", age: 25 },
{ name: "Mary", age: 40 },
{ name: "Alex", age: 20 }
];
const filteredPersons = persons.filter((person) => {
return person.name !== "Alex";
});
console.log(filteredPersons);
// [{name: "John", age: 30}, {name: "Mary", age: 40}]
在这个例子中,我们定义了一个回调函数,它将测试每个元素是否不等于 “Alex”。如果是,返回 true
,否则返回 false
。filteredPersons
数组包含了所有不等于 “Alex” 的元素,名字为 John 和 Mary 的对象。
Array.prototype.filter()
方法不会改变原数组,它将返回一个新数组。Array.prototype.findIndex()
方法找到需要删除的元素的索引,然后使用 Array.prototype.splice()
方法删除它。