2017-02-20 1 views
0

특정 "id"키를 찾고 "외부 키"라는 이름을 되돌리기 위해이 JSON 객체를 반복하는 방법은 무엇입니까? 죄송합니다, 나는 적절한 이름에 익숙하지 않습니다.다른 키를 사용하여 Json 반복하기

즉, '24'ID를 검색하고 Javascript에서 'Jax'를 가져 오시겠습니까?

{ 
    "type":"champion", 
    "version":"7.2.1", 
    "data":{ 
    "Jax":{ 
     "id":24, 
     "key":"Jax", 
     "name":"Jax", 
     "title":"Grandmaster at Arms", 
     "tags":[ 
     "Fighter", 
     "Assassin" 
     ] 
    }, 
    "Sona":{ 
     "id":37, 
     "key":"Sona", 
     "name":"Sona", 
     "title":"Maven of the Strings", 
     "tags":[ 
     "Support", 
     "Mage" 
     ] 
    } 
    } 
} 
+0

'}'이 (가) 없습니다. – guest271314

+3

[ "JSON 개체"와 같은 것은 없습니다.] (http://benalman.com/news/2010/03/theres-no-suchthing-as-a-json/). – nnnnnn

답변

1

당신은 속성 이름과 객체의 값을 반복 for..of 루프, Object.entries()을 사용할 수 있습니다; 값 id24과 일치하면 변수를 해당 개체의 속성 이름으로 설정합니다. breakif 내에서 루프 또는 반환 속성

function getData(json, _id) { 
    let prop = `${_id} not found`; 
    for (let [key, value] of Object.entries(json)) { 
    let {id} = value; 
    if (id && id === _id) { 
     return key 
    } 
    } 
    return prop; 
} 

let res = getData(json.data, 24); 
+1

돌아 오기 전에 모든 루프 반복을 완료 할 때까지 기다리는 이유는 무엇입니까? – Phil

+0

@ Phil 좋은 포인트. if 문에'break'를 포함합니다. – guest271314

+1

또는 그냥'return key' – Phil

관련 문제