2016-05-07 14 views
1

私は2つの配列を持っています。lodashが配列内にあります

var loans = [ 
    { 'id': '1234', 'active': true, 'state': 'CA' }, 
    { 'id': '5678', 'active': false, 'state': 'IN' } 
]; 

var people = [ 
    { 'id':'1', 'licenses': ["IN", "FL"] }, 
    { 'id':'2', 'licenses': ["CA"] } 
]; 

私は状態のローンでのライセンスを持っているすべてのpeopleを見つけるためにlodash使用したいです。

私が試してみました:

_find(loans, "IN"); 
をしかし、それは私のために動作しません。

誰でも知っていますか?

答えて

6
_.find(people, function(o) { 
    return ~o.licenses.indexOf('IN'); 
}); 
// { 'id':'1', 'licenses': ["IN", "FL"] } 
+0

ありがとう!私は実際にあなたがそこに持っていたものすべてを一点に持っていましたが、「indexOf」ではなく「contains」を使用しました。うわー!あなたの投稿に感謝します! – Turp

+0

は、1つしか返されない場合にオブジェクトを返します。これをどのように配列にとどめるか'people'は_.find()メソッドに入る配列でした。 – Turp

+0

'_.find()'は、最初の一致(あなたの場合はオブジェクト)を抽出します。配列が必要な場合は、 '_.filter()'を探しているかもしれません。同じ構文ですが、1つまたは複数の一致を配列として返します。一致しない場合は空の配列を返します。 – veksen

関連する問題