2011-04-11 3 views
0

을 정의하는 다차원 배열을 정의문제는이 내 자바 스크립트 코드는 자바 스크립트 다차원 배열

var array = new Array(2); 
    for (i = 0; i < array.length; i++) { 
     array[0] = new Array(4); 
    } 
    array[0][0] = "name1"; 
    array[0][1] = "property1"; 
    array[0][2] = "value1"; 
    array[0][3] = "0"; 

    //this is where the error happened 
    array[1][0] = "name2"; 
    array[1][1] = "property2"; 
    array[1][2] = "value2"; 
    array[1][3] = "1"; 

하지만 불을 지르고 나에게 오류 말씀 : [1]

을 정의되지 않은 배열을하는

012,351, I는

상기 코드 마크 그러나 어레이 [0] [] I 정의 수 있으며, 그들에게 가치를 부여

왜이 장소에서 문제가 발생 했습니까?

답변

2

array[0] = new Array(4)array[i] = new Array(4)해야한다.

는하지만 배열 리터럴과 훨씬 더 간결하게 수행 할 수 있습니다

var array = [ 
    ["name1", "property1", "value1", "0"], 
    ["name2", "property2", "value2", "1"] 
]; 
2

루프가 배열의 첫 번째 멤버를 재정의하고 있습니다. 이것은 당신이 당신이하고있는 모든 속기 구문을 사용하여 위해 할 수있는 경우

var array = new Array(2); 
for (i = 0; i < array.length; i++) { 
    array[i] = new Array(4); 
} 
array[0][0] = "name1"; 
array[0][1] = "property1"; 
array[0][2] = "value1"; 
array[0][3] = "0"; 

//this is where the error happened 
array[1][0] = "name2"; 
array[1][1] = "property2"; 
array[1][2] = "value2"; 
array[1][3] = "1"; 

var array = [ 
     [ 
      "name1", 
      "property1", 
      "value1", 
      "0" 
     ], 
     [ 
      "name2", 
      "property2", 
      "value2", 
      "1" 
     ] 
    ]; 
0

자바 스크립트는 다차원 배열을 가지고 있지 않습니다. 그러나 배열 배열을 가질 수 있습니다.

var array = [ 
    ["name1", "property1", "value1", "0"], 
    ["name2", "property2", "value2", "1"]]; 
+1

말을 의미 생각

for (i = 0; i < array.length; i++) { array[0] = new Array(4); } 

'자바 스크립트를하지 않습니다 여기에 당신이 찾고있는 무엇을 만들 수있는 방법 다차원 배열을 가지고있다. 뭘 만들었 니? – Khez

+0

그러면 다차원 배열이 아닙니다. – deceze

+2

왜 downvote? 배열의 배열은 다차원 배열과 같지 않습니다. 다차원 배열은 두 개의 고정 된 차원이있는 배열입니다. JavaScript는 * 다른 배열을 멤버로 포함 할 수있는 1 차원 배열 만 가질 수 있습니다. – Jacob

0

공지 사항 : 당신은 항상 array[0]를 초기화하고 있지만, 난 당신이 array[i]