在javascript中的3d数组

时间:2012-10-24 02:29:04

标签: javascript html arrays

我正在尝试在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]);

3 个答案:

答案 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);