2012-09-11 2 views
0

자바 스크립트에서 중첩 배열을 만들고 싶지만 원하는 것을 할 수 없다. 심지어 가능할 지 모르겠다. 여기에 내가 만들려는 배열의 어떤 종류의 예는 다음과 같습니다 자바에서 중첩 배열 이해

var array = ['id1', 'id2', 'id3', 'id4']; 

가 그럼 난 ID 값이 동일한 체재하는 각 ID 등의 방법을 새로운 배열을 추가 할 수 있습니다. 왜? 왜냐하면 indexOf 메서드를 사용하여 하위 배열 id가있는 주 배열의 요소 인덱스를 찾으려하기 때문입니다. 이런 식으로 뭔가 : 아는 것이 좋을 것 그 일을 어떤 방법이 있으면하지만 그렇지 않은 경우 나는 하나의 하위 배열과 다른 ID를 개최한다, 나는이 배열을 사용합니다 생각보다

array[0]['par1'] should return the value of parameter1 
array[0]['par2'] should return the value of parameter2 

... 

array[0] should return "id1" because 

alert(array.indexOf("id1")) must return 0 ; 

나쁜 영어로 죄송합니다. 내 요구를 설명하기 위해 최선을 다했습니다.

답변

2

은 아마 당신은

array[0] = {par1: 'somevalue', par2: someother}; 
array[1] = {par1: 'anotehrone', par2: stillanother}; 

이 객체가 여기에 연관 배열로 사용되는 자바 스크립트를 사용하면 배열의 요소로 설정해야합니다. 그들은 키 요소를 설정하거나 얻을 수 있도록 :

array[0]['par1'] = 'new value'; // write 
var newval = array[0]['par1']; // read 

그러나 당신은 또한 ... 일반 객체하지만 문자열이 아니다 array[0] 반환 뭔가를하고 싶다면 그때는 아마 자바 스크립트를 원하지 않는다. 이 언어는 그렇게 작동하지 않습니다.

+0

그런 식으로 배열 [0]은 "id1"이 아니라 객체를 반환합니다. 그렇지 않습니까? – Irakli

+1

예. 나는 이제 귀하의 질문을 다시 읽은 후에 나쁜 해킹없이 모든 요구 사항을 충족시킬 수 없다고 대답해야한다고 생각합니다. 아마도 객체 (어쩌면 클래스)를 사용해야합니다. –

+0

http://jsfiddle.net/unkvs/가 작동하지 않기 때문에 예, 가능하지 않습니다. – Irakli