簡體   English   中英

從對象數組中查找對象,其中鍵來自另一個數組

[英]Find object from array of objects where key is from another array

我為自己的JavaScript代碼找到合適的對象而感到震驚。 我有2個數組。

var filters = [{"name":"hello","value":"xyz"},{"name":"hello2","value":"abc"}]
var keys = ["hello","hello2"]

我想找到名稱為“ hello”的對象。 我正在嘗試使用underscore.js

var selectedObj = _.findWhere(filters , { name: ??? });

我不能直接傳遞“ hello” /鍵[0]。 我必須使用keys數組來填充“ ???”。

請幫忙。

提前致謝。

使用_.find代替findWhere:

    var result = [];
_.each(keys, function (key) {
    _.find(filters, function (item) {
        //loop through array , check key and return object
        if (key === item.name)
            result.push(item);
    });
});

它們是相似的,但是findWhere是為要匹配鍵值對的特殊情況設計的(在您的方案中沒有用,因為它涉及嵌套對象)。 Find是更通用的,因為它使您可以提供一個函數作為謂詞。

暫無
暫無

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

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