如何通过对象键名从对象数组中删除对象?

时间:2019-07-27 02:01:44

标签: javascript

我希望能够通过其键名从此对象数组中单独删除一个对象。因此,如果我想删除item1,我会调用一个函数或类似的函数,它将完全删除它。

var list = [{item1: 'Foo'}, {item2: 'Bar'}];

removeObjectByKeyName(item1);

我希望删除后的对象数组为[{item2: 'Bar'}]

感谢您的帮助。谢谢!

3 个答案:

答案 0 :(得分:2)

一种选择是使用filter来过滤没有属性名称toRemove的数组元素

var list = [{
  item1: 'Foo'
}, {
  item2: 'Bar'
}];

var toRemove = 'item1';
var result = list.filter(o => !(toRemove in o));

console.log(result);


具有removeObjectByKeyName功能。第一个参数是要删除的键,第二个参数是数组。

let list = [{
  item1: 'Foo'
}, {
  item2: 'Bar'
}];


let removeObjectByKeyName = (k, a) => a.filter(o => !(k in o));

let result = removeObjectByKeyName('item1', list);

console.log(result);

答案 1 :(得分:0)

此功能将满足您的需求

var list = [{item1: 'Foo'}, {item2: 'Bar'}];

function removeObjectByKeyName(list, key) {
  return list.filter(item => !Object.keys(item).find(k => k === key) )
}

removeObjectByKeyName(list, 'item1') // [{item2: 'Bar'}]

答案 2 :(得分:0)

您可以使用filterhasOwnProperty

var list = [{
  item1: 'Foo'
}, {
  item2: 'Bar'
}];

var toRemove = 'item1';
var result = list.filter(o => !o.hasOwnProperty(toRemove));

console.log(result);