2013-03-16 4 views
0

내가 식별자에 매핑하는 자바 스크립트 객체가 있습니다Javascript에서 객체 속성의 값을 값으로 반환 하시겠습니까?

codes = { 
    "admin" : 3, 
    "manager" : 2, 
    "basic" : 1 
} 

감안할 때 값을 ...

ACCOUNTTYPE = 2;

... 해당하는 키 ("관리자")를 찾는 가장 우아한 방법은 무엇입니까?

+0

은 무엇'{관리자와 같은 개체를 발생한다 :

var name = codeNames[accountType]; 

당신은 codes 개체에서 조회 개체를 만들 수 있습니다 (2) , 매니저 : 2}'? – Bergi

+0

db 값을보다 읽기 쉬운 것으로 매핑하는 데 사용합니다. (나는 이것을 위해 조인 테이블을 사용하는 것에 관심이 없다.) – user1031947

답변

3
for (var i in codes){ 
    if (codes[i] == accountType) 
     alert(i); 
} 

여기를 사용하여 아무런 혜택이 정말 없다하지만 Live DEMO

의 jQuery 버전이 :이에게 많이 할 경우

$.each(codes, function(key, value){ 
     if (value == accountType) 
      alert(key); 
}); 

Live DEMO

+0

고마워요. 수동으로 속성을 반복하지 않고 이것을 수행하는 방법이 있을지 궁금합니다. – user1031947

+0

@ user1031947, 나는 두렵습니다. 죄송합니다. "3": "admin", "2": "manager", "1"과 같이 오브젝트 키 값 쌍이 같을 경우 – gdoron

+0

'for (var i in codes) '가 – Ian

1

, 그것은 효율적인 것 역방향 조회에 사용할 객체 유지 :

codeNames = { 
    "3": "admin", 
    "2": "manager", 
    "1": "basic" 
} 

이제 당신은 단지 이름으로 속성에 액세스 할 수 있습니다

var codeNames = {}; 
for (var i in codes){ 
    codeNames[codes[i]] = i; 
} 
+0

왜 downvote? 잘못이라고 생각하는 것을 설명하지 않으면 대답을 향상시킬 수 없습니다. – Guffa

+0

+1, 두 개의 서로 다른 조회에 두 개의 개체가있는 것이 끔찍하다고 생각합니다. 그것은 이득보다는 고통을 더 일으킬 수 있습니다. – gdoron

관련 문제