2017-01-10 2 views
0

아래의 데이터 객체로 작업하면서 이름 (이 경우 "GD"와 같은 이름의 데이터 레이블)과 value를 취하는 함수를 작성하려고합니다. 밑줄에서 작성한 함수를 사용하고 싶지만 일반적으로 JS를 처음 접했을 때이 코드를 작성하는 방법을 찾는 데 어려움을 겪고 있습니다. 함수를 수정하는 방법에 대한 모든 입력 getOption()? 따라 문서밑줄 개체는 데이터의 특정 부분을 가져 오는 기능입니까?

var data = [{},{}, 
    { 
    field:"ran", 
    indexable:true, 
    label:"R", 
    options: [ 
    {},{}, 
    { 
    category_value:"200", 
    label:"GD" 
    },{},{} 
    ] 
    },{} 
] 


function getOption (name, value) { 
    return _.findWhere(data.options, {label: name}); //return the category_value of the name, if "GD" is the name, the output of this function should be 200 
    } 
+0

같은 이름의 레이블이 여러 개인 경우 어떻게 될까요? –

+0

@SandeepNayak 그건 내가이 기능으로 설명하고 싶은데 뭔가 알아 내는데 어려움이있다. 어떤 입력? –

+0

'_.findWhere'는 첫 번째 일치 만 가져오고 이후 일치는 가져 오지 않습니다. –

답변

0

,

_.findWhere (목록, 특성)

목록을보고 가 모두 일치하는 제 1 값을 반환 키 - 값 쌍은 특성에 으로 나열됩니다.

일치하는 항목이 없거나 목록이 비어 있으면 정의되지 않은 항목이 반환됩니다.

_.findWhere (publicServicePulitzers, {뉴스 룸 : "뉴욕 타임즈"}); => {년 : 1918 년, 뉴스 룸 : "The New York Times", 이유 : "많은 공무원 보고서를 공개하는 공공 서비스의 경우 과 관련된 유럽의 정치가에 관한 문서와 연설과 전쟁. "}

속성 이름과 속성 값을 지정해야하는 것처럼 보입니다. 이 경우 "label"과 "GD"가 각각 있습니다.

이 시도 :

var data = [{},{}, 
    { 
    field:"ran", 
    indexable:true, 
    label:"R", 
    options: [ 
    {},{}, 
    { 
    category_value:"200", 
    label:"GD" 
    },{},{} // why so many initalized empty arrays? 
    ] 
    },{} 
] 


function getOption (name, value) { 
    return _.findWhere(data.options, {label: "GD"}); // returns the whole array 
    // try var result = _.findWhere(data.options, {label: "GD"}); 
    // then return result.category_value; 
} 

그냥 다소 게시물과 관련된 다음 URL을 권장합니다. 그것은 당신을 위해 유용 할 수도 있으며 추가 라이브러리를 사용하지 않습니다 : dynamic access to an array in javascript

+0

데이터 객체는 그 안에 몇 개의 레이블을 가지고 있습니다. 코드의'{label : "GD"} "부분을 좀 더 동적으로 다시 쓸 수 있습니까? 이 함수는 어떤 이름으로도 사용되며 각 이름에는 자체 레이블이 있습니다. –

+0

'function getOption (name, value) { return _.findWhere (data.options, {name : value}); }' 나는 가정합니다. 이것은 getOption ("label", "GD") 형식으로 병렬로 작동해야합니다. 스스로 위험을 감수하면서 테스트 해보십시오 (이 문제와 관련하여 구문 문제가 있음을 확신합니다). 그리고 같은 레이블과 값을 가진 여러 결과에 대한 모션을 두 번째로 나타냅니다. 모든 값을 반환하는 "where"함수도 있습니다. – phenominas

관련 문제