2012-10-24 5 views
2

자바 스크립트에서 3D 배열을 만들려고하는데 작동하지 않습니다. 누군가 나를 이룰 수있게 도와 줄 수 있습니까? 여기에 내 코드 내 jsfiddle 함께 놀러 주시기 바랍니다 ... 지금까지입니다 http://jsfiddle.net/annhW/1/자바 스크립트의 3D 배열

var myArray = new Array(4); 

for (var i = 0; i < 4; i++) { 
    myArray[i] = new Array(3); 
    for (var j = 0; j < 3; j++) { 
     myArray[j] = new Array(6); 
     for (var k = 0; k < 6; k++) { 
     myArray[i][j][k] = 'a'; 
    } 
} 
} 

document.write(myArray[1][2][1]); 
+0

"가 작동하지 않습니다"- - 두 번째 차원을 추가하면 더 구체적으로 할 수 있습니까? –

+0

아무 것도 인쇄하지 않습니다. –

답변

5

"작동하지 않는다"는 것이 정확히 무엇인지는 모르겠지만 myArray 요소를 재 할당하기 때문에 코드에 문제가있는 것입니다. 두 번째 과제를 수행 할 때

var myArray = new Array(4); 

for (var i = 0; i < 4; i++) { 
    myArray[i] = new Array(3); 
    for (var j = 0; j < 3; j++) { 
     myArray[i][j] = new Array(6); // <-- note new subscript 
     for (var k = 0; k < 6; k++) { 
     myArray[i][j][k] = 'a'; 
    } 
} 
} 

document.write(myArray[1][2][1]); 
+0

고맙습니다. –

3

귀하의 문제는이 라인 :

myArray[j] = new Array(6); 

가되어야한다

myArray[i][j] = new Array(6); 

당신이 만약 자바 스크립트 콘솔 (파이어 폭스에 불을 지르고, 또는 크롬/사파리에서 관리자 중 하나)을 사용, 그것은 오류를 던져이 같은 문제가 코드에있는 곳을 보여줍니다.

0

, 당신은 i 첨자 누락 : 여기에 개선이다. 이렇게함으로써 myArray[j] 효과적으로 여전히 첫 번째 차원의 요소를 할당, 외부 첨가 한 것을 무시된다.

myArray[i][j] = new Array(6);