コードの最初の行:
var myArray = new Array();
...要素を持たない新しい1次元配列を作成します。myArray
それからあなたが言うとき:
myArray[0][0] = 0;
...まだ存在していないディメンションにアクセスしようとしています。つまり、配列myArray[0]
ですが、まだ要素がないためundefined
です。つまり、と言っているようなものです。myArray
myArray[0][0]
undefined[0]
myArray[0]
そのため、にアクセスする前に、新しい配列を参照するように割り当てる必要がありますmyArray[0][0]
。同じことが当てはまりますmyArray[1]
。JavaScriptには多次元配列自体がないため、配列の配列があります。したがって、これが必要なものです(既存のコードへの最小限の変更のために):
var myArray = [];
myArray[0] = [];
myArray[0][0] = 00012;
myArray[0][1] = 00012;
myArray[0][2] = 00006;
myArray[1] = [];
myArray[1][0] = 1;
myArray[1][1] = 00004;
myArray[1][2] = 00001;
[]
と同等であることに注意してくださいnew Array()
。
読みやすく入力しやすいオプションは、配列リテラル構文を使用してサブ配列を作成することです。
var myArray = [];
myArray[0] = [00012, 00012, 00006];
myArray[1] = [1, 00004, 00001];
または、(特にこれらがハードコードされた値である場合)最も簡単なのは、ネストされた配列リテラルを介して1つのステートメントですべてを作成することです(空白は無視されます)。
var myArray = [
[00012, 00012, 00006],
[1, 00004, 00001]
];
(数値データの場合、これらの先行ゼロは表示されなくなることにも注意してください。ゼロを保持する場合は、("00012"
の代わりに)文字列を使用してください。)00012