2011-02-11 3 views
0

I가 옵션 중 하나 ('inits이')에 전달할 수있는 사용자가 어레이를개체 리터럴을 뒤집습니까?

배열

공간 탭 입력 이들 값 중 하나를 포함 할 수

쉼표

인 jQuery 플러그인을

지금 나는이를 keyDown 핸들러

을에서에게이

keys: { 
     backspace: 8, 
     enter:  13, 
     space:  32, 
     comma:  44, 
     tab:  9 
    } 

처럼 보이는 객체 리터럴라는 키가 내가 눌렀던 키가 inits 배열에 있는지 확인하고 싶은 keydown 핸들러. 이제 코드에서 이름을 가져올 수 있도록 키 배열에 키를 먼저 매핑해야합니다.

어떻게하면됩니까?

+0

키 객체의 복사본이 두 개 있고 싶지 않으며 objct를 현재 양식의 다른 위치에서 사용되므로 역순으로 작성할 수 없습니다. – Hailwood

+0

"현재 양식의 다른 곳에 사용"하시겠습니까? DRY 위반 가능성이있는 것 같습니다. 한 번만 쓸 수 있도록 재 작성하는 것이 실용적인 경우 권장 할 것입니다. 그런 다음이 문제를 해결할 수있는 몇 가지 방법이 있습니다. – MatrixFrog

답변

1
var keyName = "" 
for(var key in keys){ if(keys[key] == keyCode){ keyName = key } } 

if($.inArray(keyName, inits) != -1){ //do something } 
+0

5 개의 요소 만있는 경우 반복은 그렇게 나쁘지 않습니다. –

+0

사실 맵을 뒤집는 모든 코드는이 구현보다 느릴 것입니다. –