我希望能够通过其键名从此对象数组中单独删除一个对象。因此,如果我想删除item1
,我会调用一个函数或类似的函数,它将完全删除它。
var list = [{item1: 'Foo'}, {item2: 'Bar'}];
removeObjectByKeyName(item1);
我希望删除后的对象数组为[{item2: 'Bar'}]
感谢您的帮助。谢谢!
答案 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)
您可以使用filter
和hasOwnProperty
var list = [{
item1: 'Foo'
}, {
item2: 'Bar'
}];
var toRemove = 'item1';
var result = list.filter(o => !o.hasOwnProperty(toRemove));
console.log(result);