如果对象中的属性不存在,如何从数组中删除对象 [英] How to remove object from array if property in object do not exist
本文介绍了如果对象中的属性不存在,如何从数组中删除对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下数据收集
[{
id: '1',
date: '2017-01-01',
value: 2
},
{
id: '2',
date: '2017-01-02',
value: 3
},
{
id: '3',
value: 3
},
id: '4',
date: '2017-01-02',
value: 3
}]
我想删除任何不具有'date'属性的对象.在上面的示例中,应删除ID为3的对象.
I want to delete any object that does not have the 'date' property. In the example above, the object with the id 3 should be deleted.
完成的对象应该看起来像这样
The finished object should look like this
[{
id: '1',
date: '2017-01-01',
value: 2
},
{
id: '2',
date: '2017-01-02',
value: 3
},
id: '4',
date: '2017-01-02',
value: 3
}]
我试图用lodash查找和删除一个未定义的值.这没用.该对象看起来与输入的对象完全一样.
I tried to find and delete a undefined value with lodash. It does not work. The object looks exactly as it is entering.
_.each(obj, (val) => {
_.remove(val, value => value['XXX-BUDAT'] === undefined);
});
我该如何使用lodash?
How can I use lodash for this purpose?
预先感谢
推荐答案
您可以使用 Object.keys()
和
You can use .filter()
, Object.keys()
, and .includes()
let input = [
{ id: '1', date: '2017-01-01', value: 2},
{ id: '2', date: '2017-01-02', value: 3},
{ id: '3', value: 3 },
{ id: '4', date: '2017-01-02', value: 3 }
]
let output = input.filter(obj => Object.keys(obj).includes("date"));
console.log(output);
这篇关于如果对象中的属性不存在,如何从数组中删除对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文