2D配列を埋めたいのですが、JavaScriptで次のコードを使用しています。
n=2; //rows
m=3; //columns
z=0;
array1=[];
for(i=0;i<n;i++){
for(j=0;j<m;j++){
array1[i]=[];
array1[i][j] = z;
console.log(i+","+j+"="+z); //debug
z++;
}
}
console.log(array1);
しかし、この期待される結果を得る代わりに、
[[0, 1, 2], [3, 4, 5]]
私は得る:
[[undefined, undefined, 2], [undefined, undefined, 5]]
どうして!?正しい最後の項目(ここでは2と5)を除いて、各「内部」配列のすべての項目が未定義になっている理由がわかりません。
i,j
各ペアと割り当てられた値をログに記録するデバッグステップを作成しましたが、毎回z
正しいペア値を取得します(i,j=z)
:
0,0=0
0,1=1
0,2=2
1,0=3
1,1=4
1,2=5
だから、私はarr[i][j]=z
毎回を使用して配列を正しく埋めていると思いますが、なぜそれらの場合に未定義になるのですか?どちらの場合も構文のarr=new Array()
代わりに使用してみましたが、同じ結果になりました。arr=[]
何か案は?些細なエラーになることはほぼ間違いありませんが、何が悪いのかわかりません。
ありがとう。