2017-02-09 18 views
0

私はjavascriptコードのために正しいオブジェクトを取得しています。 私は2つの配列を持っています。キーが別の配列からのオブジェクトの配列からオブジェクトを検索

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

私は名前が「こんにちは」であるオブジェクトを見つけたいです。 私は[0]を直接 "ハロー" /キーを渡すことはできませんunderscore.js

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

にしようとしています。私はキーの配列を使用して "???"を埋める必要があります。

助けてください。

ありがとうございました。 _.find代わりfindWhereの

+0

ちょうど '_.findWhere(フィルター、{名前:keys [0]});' – dfsq

+0

どうしたらうまくいきますか?何を渡したいですか?これは簡単にカスタム作成できます。 –

答えて

0

用途:

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は、述語としての関数を提供できるので、より一般的な使い方です。

+0

ありがとうございます。私は、オブジェクトと文字列の配列を結ぶのに混乱していました。 – usr2508

関連する問題