var obj = {a: [], b: [1,2], c: [], d: [1]};
如何获得非空对象数组,如下所示:
{b: [1,2], d: [1]}
答案 0 :(得分:3)
您可以使用pickBy()
完成您的工作。
var result = _.pickBy(obj, function(val){
return val.length > 0;
});
在这里小提琴:https://jsfiddle.net/W4QfJ/3160/
注意:与filter()
和reject()
不同,它返回一个对象,保留原始结构(而不是数组)。
答案 1 :(得分:2)
另一种方法:_.omitBy(obj, _.isEmpty);
答案 2 :(得分:0)
_.filter()是您正在寻找的:
var obj = {a: [], b: [1,2], c: [], d: [1]};
console.log(_.filter(obj, function(o){ return o.length; }))
答案 3 :(得分:0)
如果你想在标题中使用_.reject(),你可以这样做:
_.reject({a: [], b: [1,2], c: [], d: [1]},function(o){
return o.length == 0
});
答案 4 :(得分:0)
目前,Lodash
有一个名为_.omit的方法可以完全满足您的需求:
> const object = {a: 1, b: 2, c: 3, d: 4}
undefined
> _.omit(object, ['a', 'c'])
{ b: 2, d: 4 }