Javascript - 通过键值从数组中删除对象

问题描述 投票:0回答:4

我有一个对象数组

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 方法?

javascript arrays object
4个回答
13
投票

您可以使用

splice
findIndex
方法并从数组中删除特定对象。

let people = [{"Name":"Bob","Age":"45"},{"Name":"Jim","Age":"45"}]

people.splice(people.findIndex(({Name}) => Name == "Bob"), 1);
console.log(people)


4
投票

要删除 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);
}

1
投票
  1. 查找
    name = "Bob"
  2. 所在对象的索引
  3. 使用
    splice()
  4. 将其从数组中删除

people.splice(people.findIndex(({Name}) => Name == "Bob"), 1);


0
投票

只需将过滤器部分中的代码从“===”更改为“!==”即可将其删除。

  let people = [
    {
      Name: "Bob",

      Age: "45",
    },
    {
      Name: "Jim",

      Age: "45",
    },
  ];

  let person = people.filter((person) => person.Name !== "Bob");
  console.log(person);

© www.soinside.com 2019 - 2024. All rights reserved.