2014-08-27 3 views
1

다른 답변으로 오류를 해결하려고했지만 그냥 실패했습니다. 나는 2 차원 배열이라고 생각하는이 간단한 예제를 가지고 있지만, 그것은 나에게 정의되지 않은 에러를 계속 리턴한다.JavaScript 2 차원 배열이 정의되지 않았습니다.

var city = 'London', 
    country = 'England'; 

var locate = []; 
locate['London']['England'] = ['Jhon','Mike']; 

for (i = 0; i < locate[city][country].length; i++) { 
    console.log(locate[city][country][i]); 
} 

jsbin 내가이 예에서 잘못 뭐하는 거지 http://jsbin.com/pixeluhojawa/1/

, 나는 당신의 도움을 주셔서 감사합니다. 당신이 locate['London']['England']에 값을 지정하기 전에

+0

'[ '런던']의 위치를'명확하게 정의되지 않습니다. –

+0

자바 스크립트의 2x2 행렬/배열은 배열 내부의 배열입니다. 배열에 넣으려고하는 것을 매트릭스 형태로 제공 할 수 있습니까? 너는 {[London, England], [John, Mike]}을 (를) 시도하고 있습니까? – sbjumani

답변

2

, 당신은 locate['London'] 객체 있는지 확인해야합니다 : 나는 객체 리터럴 ({}) 대신에 문자 배열을 사용하는 방법

var locate = {}; 
locate['London'] = {}; 
locate['London']['England'] = ['Jhon','Mike']; 

공지 사항 ([]). 배열은 이와 같은 문자열 키를 지원하지 않습니다. 대신 개체를 사용해야합니다.

당신은 또한 다음과 같이 선언 할 수 있습니다 :

var locate = { 
    London:{ 
     England:["Jhon","Mike"] 
    } 
} 
+3

또한'locate = {}'이어야합니다. 이것은 배열이 아닙니다.) –

+1

@Derek 朕 會 功夫 : 나는 분명히 대답을 편집하지 못했습니다 : P – Cerbrus

+0

정말 고마워요. 이 문제가 해결되었습니다. 이제 나는 이것을 이해한다. – devjs11

관련 문제