簡體   English   中英

JavaScript 或 Lodash 通過鍵查找對象

[英]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']))

基本上,您需要數組中具有afred字段a所有對象。 您可以在過濾時對對象使用hasOwnProperty()

_.filter(array, elem => elem.hasOwnProperty('a') || elem.hasOwnProperty('fred'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM