2012-07-09 4 views
11

자바 스크립트 사전에 대한 질문이 있습니다. 키 - 값 쌍이 동적으로 다음과 같이 추가 된 사전이 있습니다.자바 스크립트 사전에서 키를 사용하여 값을 찾는 방법

var Dict = [] 
var addpair = function (mykey , myvalue) [ 
    Dict.push({ 
    key: mykey, 
    value: myvalue 
    }); 
} 

이 함수를 호출하고 다른 키와 값을 전달합니다. 하지만 이제는 키에 따라 가치를 찾고 싶지만 그렇게 할 수는 없습니다. 누구든지 정확한 방법을 말할 수 있습니까? 내 키는 변수이기 때문에

var givevalue = function (my_key) { 
    return Dict["'" +my_key +"'"]   // not working 
    return Dict["'" +my_key +"'"].value // not working 
} 

, 나는 Dict.my_key

감사를 사용할 수 없습니다.

답변

17

JavaScript의 배열은 문자열을 키로 사용하지 않습니다. 값이 있음을 알 수 있지만 키는 정수입니다.

var Dict = {}; 
var addpair = function (my_key, my_value) { 
    Dict[my_key] = my_value; 
} 
var givevalue = function (my_key) { 
    return Dict[my_key]; 
} 

my_key 변수가 이미 문자열입니다, 그래서 당신은 더 많은 따옴표가 필요하지 않습니다 : 당신이 객체로 Dict을하면

이 작동합니다.

+0

안녕하세요, 값을 사용하여 키를 찾아서 반대로 할 수 있습니까 –

+0

쉽지 않습니다. 루프를 수행하고 올바른 값을 얻을 때까지 객체의 모든 값을 시도한 다음 해당 키를 반환해야합니다. 문제는 동일한 값이 두 개있을 수 있으므로 중복을 방지하기 위해 addpair()에 코드를 넣어야합니다. –

+0

Javascript * do *의 배열은 문자열을 키로 사용하며 배열 인덱스로 사용하려고하는 모든 것은 배후의 문자열로 강제 변환됩니다. 'toString' 메쏘드로 객체를 생성하고 그것을 배열 인덱스로 사용하여 이것을 확인할 수 있습니다. 'toString' 메쏘드가 리턴 한 것을 사용합니다. –

관련 문제