2014-01-15 2 views
3

내 질문에서 연관 배열의 키 다음은을 가져 오기 :jQuery를 배열에 인덱스

var array = new Array(); 
    array['abc'] = 'value1'; 
    array['def'] = 'value2'; 

을 내가 배열의 연관 키를받을 수 있나요 어떻게 인덱스 번호가 있다면? arr [0]의 연관 키 (=> 'abc') 또는 arr [1] '=>'def '의 연관 키를 원한다고 가정 해 봅시다. jQuery에서 어떻게 가능합니까?

값을 찾고 싶지 않아 $ .each()를 사용할 필요가 없습니다. 난 단지 'abc'에 1을 연결하고 1 => 'def'등 ... 불행히도 arr [0] .assoc_key()와 같은 것은 존재하지 않는 것 같습니다. T_T 감사합니다.

+1

자바 스크립트에 기본 사전 유형이 없으므로 작성해야합니다. –

+1

불가능하고 jQuery가 전혀 나타나지 않습니다. 배열을 사전처럼 사용하면 잘못된 일을하고있는 것입니다. – Jon

+1

당신이하고있는 방식을 다시 생각해보십시오. 어쩌면'array [0] = {key : 'abc', value : 'value1'}' – Geezer68

답변

1

을, 당신은 동료 객체를 생성해야 열쇠가있는 indeces와 값이있는 키. 다음은 작동하는 JSBin입니다. 요소를 추가하려면 올바른 위치에 indeces와 키를 모두 가질 수 있도록 사용자 정의 함수 (이 경우 addElement)가 필요합니다. 이것은 어떻게 할 수 있는지에 대한 아이디어를 제공하는 대략적인 초안입니다!

JSBin

당신은 질문이 있거나 정확히 당신이 기대했던 아니었다면, 간단하게 질문을 편집하고 내가 또 다른 눈을해야합니다. 당신이 요구 한 행동을 원한다면 맞춤 제작 된 물건이어야합니다.

+0

Very Nice! 감사. – Gingi

-1

for ... in을 사용하는 것 외에는 다른 것을 모릅니다. 그래서 여기에 내가 어떻게하고 당신이 더 나은 대답을 얻기를 바란다 (왜냐하면 나는 또한 알고 싶다!). 배열 개체

var array = new Array(); 
array['abc'] = 'value1'; 
array['def'] = 'value2'; 

var listKeys = []; 
for(x in array) listKeys.push(x); 

console.log(listKeys); // ['abc', 'def'] 

사용하지만 [string] 오브젝트 아닌 어레이에 등록 정보를 추가한다. 그래서 그런 식으로 초기화하는 것이 더있을 수 있습니다 :

var array = {}; 

당신은 this question에서이 기술과 그에 의존하지해야하는 이유에 대한 몇 가지 제한에 대한 자세한 내용을 배울 수 있습니다.

+0

'for ... in'은 주문을 보장하지 않습니다. 이론적으로 두 번의 반복 작업을 수행하고 각각 다른 결과를 얻을 수 있습니다. – Jon

+0

다른 키를 삽입하면 인덱스가 변경됩니다. – stark

0

자바 스크립트에 기본 사전 유형이 없으므로 작성해야합니다. - T McKeown

불가능하고 jQuery가 전혀 나타나지 않습니다. 배열을 사전처럼 사용하면 잘못된 일을하고있는 것입니다. - Jon

당신이하고있는 방식을 다시 생각해보십시오. (Geezer68

Geezer68 @ 객체가 multidimentional 데이터를 지원하지 않는, 내가 일하고 있어요 배열이 3 단계 깊은 - { '값 1': 'ABC', 값 키} 어쩌면 [0] = 배열을 시도 나는 원래 게시물에서 그렇게 말하지 않았다는 것을 알고 있지만 그것이 적절하다고 생각하지는 않았다.)

어쨌든, 고맙습니다. 질문에 답변합니다. 나는 ;-) 다음을 다시 생각합니다

편집 : 난 그냥 수준 추가 할 것 같아요 : 해결책은 아주 간단합니다 좋아, 그래서

var array = new Array(); 
    array[] = 'abc'; 
    array[0] = 'value1' 
+0

아, 그리고 Merci Karl-André도 있습니다 ^^ – Gingi