回答
你可以使用pickBy()
来做你以后的事情。
var result = _.pickBy(obj, function(val){
return val.length > 0;
});
小提琴这里:https://jsfiddle.net/W4QfJ/3160/
注:不像filter()
和reject()
,这将返回一个对象,让你的原来的结构(而不是一个数组)。
谢谢,它的工作原理! – user5671335
_.filter()是你在找什么:
var obj = {a: [], b: [1,2], c: [], d: [1]};
console.log(_.filter(obj, function(o){ return o.length; }))
如果你想在你的标题中使用_.reject(),你可以这样做:
_.reject({a: [], b: [1,2], c: [], d: [1]},function(o){
return o.length == 0
});
_.reject和_.filter有什么区别? – user5671335
拒绝只是过滤器的反面。因此,如果您想忽略该元素,则拒绝您返回true。与过滤器相比,如果要保留该对象,则返回true。 –
_.reject返回一个数组 – user5671335
另一种方式来做到这一点:_.omitBy(obj, _.isEmpty);
眼下,Lodash
有一个名为_.omit方法,它不正是你所需要的:
> const object = {a: 1, b: 2, c: 3, d: 4}
undefined
> _.omit(object, ['a', 'c'])
{ b: 2, d: 4 }
- 1. Lodash _.pick()返回空对象
- 2. angular2返回lodash空对象
- 3. 对象拒绝
- 4. 拒绝或解决之前返回的延迟对象?
- 5. window.safari.pushNotification.requestPermission总是返回“拒绝”
- 6. weather.yahooapis.com返回“拒绝连接”
- 7. Mono WebService拒绝返回json
- 8. 返回到Actitiy时显示被拒绝的对话框,
- 9. NHibernate拒绝刷新对象
- 10. 得到返回的返回类型是对象的引用吗?
- 11. 从AngularJS $ HTTP返回对象得到
- 12. 直接返回拒绝的jQuery承诺
- 13. 返回值:: EXEC(总是QDialog的::拒绝
- 14. MySQL的LOAD XML返回 “拒绝访问”
- 15. onRequestPermissionsResult立即返回拒绝的权限
- 16. 返回的拒绝承诺和蓝鸟
- 17. StartService返回访问被拒绝的SERVICE_KERNEL_DRIVER
- 18. 为什么lodash中的_.pick(object,_.identity)返回空对象?
- 19. Javascript lodash范围的数组JSON对象不返回
- 20. Lodash - 从对象
- 21. lodash:对象
- 22. Lodash ORDERBY对象
- 23. SOFTLAYER API返回权限被拒绝getReverseDomainRecords
- 24. Javascript承诺拒绝后显式返回
- 25. IIF声明拒绝返回NULL
- 26. FindFirstFile返回访问被拒绝
- 27. MsgWaitForMultipleObjects返回访问被拒绝
- 28. Process.Kill()返回访问被拒绝
- 29. SetSecurityInfo返回访问被拒绝
- 30. tern_for_vim(ternjs)返回403访问被拒绝
什么是你想要做的,你尝试过什么到目前为止。展示你的工作。 – Soviut