javascript - How to remove object from array if property in object do not exist
问题描述
I have the following collection of data
[{
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
}]
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
}]
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);
});
How can I use lodash for this purpose?
Thanks in advance
解决方案
您可以使用.filter()
、Object.keys()
和.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);
推荐阅读
- php - INSERT INTO 不会在数据库中写入任何内容
- java - 如何删除某些元素如果它在回收视图中包含特定值?
- angularjs - $rootScope 中的值未正确加载
- c++ - 如何控制 C++ 控制台应用程序中的光标位置?
- ios - 无法构建项目 - libswiftAVFoundation.dylib:errSecInternalComponent 错误:任务失败,退出 1 信号 0
- html - 当particle.js库将画布附加到同一元素时,将元素居中在div中?
- reactjs - 异步任务和订阅时 ReactJS 内存泄漏
- javascript - nodejs:如何获取中间哈希值
- node.js - 使用批处理安装和配置 Protractor
- spring - 如何在 Spring Security preauthentication for siteminder 中验证 SM_USER 标头