2014-04-10 2 views
0

자바 스크립트의 코드에서 몇 시간 동안 오류를 찾고 있었지만 왜이 오류가 발생하는지 이해하지 못합니다.자바 스크립트에서 2 개의 간단한 배열로 2 차원 배열 만들기

그래서 나는 아약스를 사용하여 얻을했습니다 2 배열을 가지고 있고 나는 2 차원 배열로 병합하고 싶지만이 오류가 발생 :

var arrayCityAccident = new Array([]); 

for(var i = 0; i < responseAccident.length; i++) 
{ 
arrayCityAccident [i][0] = responseCity[i]['city']; 
arrayCityAccident [i][1] = responseAccident[i]; 
} 
:

Uncaught TypeError: Cannot set property '0' of undefined

그래서이 내 코드입니다

둘 다 1d 배열에 값이 있는지 예를 살펴 보았습니다. 그렇기 때문에 누군가가 나를 도울 수 있다면 나를 도와 줄 것입니다.

미리 감사드립니다.

답변

0

는 각 인덱스 i에 대한 arrayCityAccident에 새 배열을 추가해야합니다 즉시 i이 당신의 루프에서보다 더 큰 공을수록

var arrayCityAccident = []; 

for(var i = 0; i < responseAccident.length; i++) 
{ 
    arrayCityAccident.push([responseCity[i]['city'], responseAccident[i]]); 
} 
+0

나는이 시도하고 작동한다! 도움 주셔서 대단히 감사합니다! – MHogge

0

글쎄, arrayCityAccident[i] 더 이상 배열을 반환하지 않습니다. 만 정의 된 arrayCityAccident[0]이므로 arrayCityAccident[i][0]에 액세스 할 수 없습니다.

그냥 요소를 정의하기 전에 arrayCityAccident 또 다른 배열을 추가 :

var arrayCityAccident = new Array([]); 

for(var i = 0; i < responseAccident.length; i++) 
{ 
    arrayCityAccident[i] = []; // add a new array to arrayAccident 
    arrayCityAccident[i][0] = responseCity[i]['city']; // now you can set those properties 
    arrayCityAccident[i][1] = responseAccident[i];  // without problems 
} 
+0

"0보다 큰 것"이라고 생각합니다. 그러나 이것은 답보다 더 많은 설명입니다. 오류가 _ 발생하는 이유를 설명하지만 해결 방법은 제시하지 마십시오. –

+0

감사합니다. 방금 내 대답을 편집했습니다. – lvogel