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

2番目の割り当てを行うとき、i添え字がありません。そうmyArray[j]することで、外部に追加されたものをオーバーライドし、効果的に1次元の要素を割り当てます。2番目の次元を追加します-

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

于 2012-10-24T02:34:54.363 に答える