[英]JavaScript or Lodash find objects by key
在具有 diff 鍵的對象數組中,如何使用 ES6 或 Lodash 按鍵查找對象?
const arr = [{a:2}, {b:3}, {fred:10}]
我希望結果是:
=> [{a:2}, {fred:10}]
我不想使用省略風格的方法。
const filtered = arr.filter(obj => obj.hasOwnProperty("a") || obj.hasOwnProperty("fred"));
// or, if you have dynamic / lots of keys:
const keys = ["a", "fred"];
const filtered = arr.filter(obj => keys.some(key => obj.hasOwnProperty(key));
過濾方法會很有用。 創建一個函數並傳遞一個keys
數組。 內部過濾器函數檢查鍵是否與參數數組匹配。 如果它通過,則返回該對象
var orgObject = [{ a: 2 }, { b: 3 }, { fred: 10 }]; function searchByKey(keyNames) { return orgObject.filter(function(item) { for (var keys in item) { if (keyNames.indexOf(keys) !== -1) { return item } } }) } console.log(searchByKey(['a', 'fred']))
基本上,您需要數組中具有a
或fred
字段a
所有對象。 您可以在過濾時對對象使用hasOwnProperty()
。
_.filter(array, elem => elem.hasOwnProperty('a') || elem.hasOwnProperty('fred'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.