我正在尝试在javascript中创建一个3d数组,但它无法正常工作。有人可以帮我实现吗?这是我到目前为止的代码...... 随意玩我的jsfiddle http://jsfiddle.net/annhW/1/
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 :(得分: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]);
答案 1 :(得分:3)
你的问题就在这一行:
myArray[j] = new Array(6);
应该是
myArray[i][j] = new Array(6);
如果您使用javascript控制台(firefox中的firebug或chrome / safari中的检查器),它将抛出错误并显示您的代码中出现此类问题。
答案 2 :(得分:0)
进行第二次分配时,您缺少i
下标。通过执行myArray[j]
,您将覆盖外部添加的内容,实际上仍然在第一维中分配元素。添加第二个维度 -
myArray[i][j] = new Array(6);