如何从属性等于Null的数组中删除对象- Lodash
How to Remove Object From Array Where Property Equals Null - Lodash
我有一个像这样的对象数组:
var a = [
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 1"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 2"
},
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 3"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 4"
}
];
如何删除CompletedDate == null
所在的元素?
我试过._dropWhile
,但它停止一旦函数返回假的,这不是我想要的。我想循环遍历所有对象并删除那些符合条件的对象。现在,我知道我可以使用常规js,但我想使用lodash,如果可能的话。我是Lodash的初学者,我正在努力做得更好。
这是我使用的。dropwhile:
var a2 = _.dropWhile(a, function(o) { return o.CompletedDate == null; });
您可以使用本机Array.filter()
进行过滤。
var a = [
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 1"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 4"
}
];
var b = a.filter(function(item) {
return item.CompletedDate !== null;
});
console.log(b);
这可以在现代浏览器或nodejs中使用箭头函数进一步简化:
var b = filter((x => x.CompletedDate !== null);
不需要lodash只是过滤器
var res = a.filter(x => x.CompletedDate !== null);
可以使用Array。过滤器
var a = [
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 1"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 2"
},
{
"ClientSideAction": 1,
"CompletedDate": "not null",
"ItemDescription": "Step 3"
},
{
"ClientSideAction": 1,
"CompletedDate": null,
"ItemDescription": "step 4"
}
];
var a = a.filter(function(v) {
return v.CompletedDate != null;
})
console.log(a)
相关文章:
- 解析JSON并从中删除对象会出错
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 正在从列表中删除对象
- 删除对象时终止setInterval
- 在JavaScript中高效地删除对象
- 使用javascript(ajax,jquery?)从表中删除对象(用户等)
- 从范围中删除对象时,它会在 Angularjs 中隐藏其余对象
- 如何正确地从数组中删除对象
- 捕捉.svg — 单击其中一个元素时删除对象
- 如何删除对象数组中的对象:jquery
- 下划线.js,根据键值删除对象数组中的重复项
- 如何在Immutable中从数组中删除对象
- 删除对象属性在执行删除操作之前生效
- 使用indexOf从列表中删除对象
- 从数组中删除对象
- 如何使用.bind(this)删除对象的事件侦听器
- 正在创建事件侦听器以从本地存储中删除对象
- 如何通过引用(javascript)从数组中删除对象
- 如何按条件删除对象中的对象