2

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

3 回答 3

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]);
于 2012-10-24T02:31:40.930 回答
3

你的问题是这一行:

myArray[j] = new Array(6);

应该

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

如果您使用 javascript 控制台(firefox 中的 firebug 或 chrome / safari 中的检查器),它将抛出错误并显示代码中存在此类问题的位置。

于 2012-10-24T02:31:24.377 回答
0

在进行第二次分配时,您缺少i下标。通过这样做myArray[j],您将覆盖外部添加的内容,有效地仍然在第一维中分配元素。添加第二个维度 -

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

于 2012-10-24T02:34:54.363 回答