我有一個對象只包含簡單的鍵值對,我想過濾掉任何屬性都有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. 過濾對象
請閱讀[問]。重要短語:「搜索和研究」和「解釋......阻止你自己解決它的任何困難」。 –