2012-10-24 68 views
2

我想在javascript中創建一個3d數組,但它不工作。有人可以幫我實現這個目標嗎?這是到目前爲止我的代碼... 隨意玩弄我的jsfiddle http://jsfiddle.net/annhW/1/在javascript中的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); 

如果您使用一個JavaScript控制檯(firefox或firefox中的鉻/ Safari瀏覽器),它會拋出錯誤,並告訴你這樣的問題在你的代碼中。

0

在做第二個任務,你缺少的i下標。通過做myArray[j],你重寫了外部添加的內容,仍然有效地分配第一維中的元素。添加第二維 -

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