2017-02-09 7 views
0

나는 자바 스크립트 코드에 적합한 객체를 얻는 것을 당했다. 배열이 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 (filters, {name : 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