我有一个对象数组
let people = [{
Name: 'Bob',
Age: '45',
},
{
Name: 'Jim',
Age: '45',
}
];
let person = people.filter(person => person.Name=== 'Bob')
这会返回 Bob,但我如何删除他?
这似乎只删除了一个属性
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete
所以看来我需要一个索引或者也许有更好的 ES6 方法?
您可以使用
splice
和 findIndex
方法并从数组中删除特定对象。
let people = [{"Name":"Bob","Age":"45"},{"Name":"Jim","Age":"45"}]
people.splice(people.findIndex(({Name}) => Name == "Bob"), 1);
console.log(people)
要删除 bob,只需执行相反的相等检查
let person = people.filter(person => person.Name !== 'Bob')
要改变原始数组,可以使用 splice
const index = people.findIndex(person => person.Name === 'Bob');
if (index > -1) {
people.splice(index, 1);
}
name = "Bob"
splice()
people.splice(people.findIndex(({Name}) => Name == "Bob"), 1);
只需将过滤器部分中的代码从“===”更改为“!==”即可将其删除。
let people = [
{
Name: "Bob",
Age: "45",
},
{
Name: "Jim",
Age: "45",
},
];
let person = people.filter((person) => person.Name !== "Bob");
console.log(person);