我有一个对象只包含简单的键值对,我想过滤掉任何属性都有falsey的值。这可能使用Array.prototype.filter()?在对象上使用过滤器
-1
A
回答
2
这是可能的使用Array.prototype.filter()?
是的,但不是直接:您可以使用Object.keys
或类似的后做到这一点:
var arrayOfTruthyValues = Object.keys(obj).filter(key => obj[key]);
结果是truthy值的数组。
如果你想最终的结果是一个对象,与reduce
结合filter
可以做到这一点:
var newObj = Object.keys(obj)
.filter(key => obj[key])
.reduce((newObj, key) => {
newObj[key] = obj[key];
return newObj;
}, {});
这大多只是使用reduce
为一个循环构造(因为我们从来没有真正改变累加器值,我们只是不断返回相同的对象),这有时被认为是“滥用”。 :-)这也意味着我们可以做无filter
部分,只是把一个if
在reduce
,但是......
注意Object.keys
仅包括一个对象的自己,枚举性能。如果你想拥有自己的属性,即使它们不是可枚举的,那也可能是Object.getOwnPropertyNames
。
+0
我们有一个小小的争论,我期待着您的意见在这种情况下。谁有权利?谁的答案是完全错误的?如果你可以说些什么... http://stackoverflow.com/questions/42356481/how-to-get-the-last-key-of-object-which-has-a-value/42356557 –
相关问题
- 1. 如何在javascript中使用过滤器函数过滤对象?
- 2. 在对象的子属性数组上使用过滤器?
- 3. 如何在对象上使用Underscore.js过滤器?
- 4. 使用过滤器渲染jinja2模板对象在主塔上
- 5. 使用过滤器的Javascript /在对象数组上包含
- 6. jquery使用对象作为过滤器
- 7. 使用Softlayer对象过滤器activeTransaction
- 8. 使用JavaScript对象过滤器json
- 9. 过滤另一个过滤器对象
- 10. 嵌套对象上的RethinkDB过滤器
- 11. json对象上的多个过滤器?
- 12. 对象数组上的Angulajs过滤器
- 13. 使用过滤器来过滤angularjs中的对象
- 14. 使用DidSelectRow选项过滤NSDictionary作为键/过滤器对象
- 15. 在控制器中使用角度过滤器过滤非匹配对象
- 16. 如何根据过滤器对象过滤对象
- 17. RxJS对象的过滤器对象
- 18. 如何使用ManyToManyField上的过滤器获取对象
- 19. 使用多个对象上添加过滤器<selects>
- 20. Django的过滤器对象
- 21. Sqlalchemy过滤器的对象
- 22. 过滤器的JavaScript对象
- 23. 在DataGridView中使用BindingSource过滤对象
- 24. Angular:在控制器中使用过滤器来设置对象
- 25. 在键值上过滤Json :: Value对象
- 26. 在相关对象上过滤数据
- 27. 多个过滤器应用于对象
- 28. 过滤器对象引用lodash
- 29. 过滤对象
- 30. 过滤对象
请阅读[问]。重要短语:“搜索和研究”和“解释......阻止你自己解决它的任何困难”。 –