データを扱うために配列は必ず使用することになりますが、他の言語と同じようにJavaScriptでも多次元配列を宣言したのですが、エラーになってしまいました。
調べてみるとJavaScriptでは多次元配列という定義はないので宣言をすることはできないようです。
なので自分で配列の中に配列を格納することで多次元配列として扱うことができます。
スポンサードサーチ
単配列の宣言方法
まず単配列の宣言方法が二通りあります。
その1はArrayオブジェクトを使用した宣言方法です。この宣言方法では配列の要素数を指定することができます。
その2はリテラルでの宣言方法です。この方法では要素数を指定することができません。要素数が決まっていない場合などに使用しましょう。
1 2 3 4 5 6 7 |
//単配列の宣言 その1 //要素数が3の配列です var array = new Array(3); //単配列の宣言 その2 //要素数が未指定 var array = []; |
多次元配列の使用方法
最初に書きましたが、JavaScriptでは多次元配列の宣言はできません。
C++のように var array[2][3]; みたいにかければいいのですが・・・
ただ、宣言が出来ないだけで多次元配列の作成と使用は可能です。
以下の方法は配列の中に配列を格納し、多次元配列を作成する方法です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//単配列の宣言 var array = []; //上記の配列に格納するための配列 var sample = []; sample[0] = 0; sample[1] = 1; sample[2] = 2; //sampleをarrayに格納する array.push(sample); console.log(array[0][0]); //0 console.log(array[0][1]); //1 console.log(array[0][2]); //2 |
上記の方法では多次元配列とするためにわざわざ配列を複数用意する必要があるので少し冗長です。
次にfor文で要素を格納する方法です。こちらの方がよく使いそうです。
注意点があり、この方法では配列の要素数を指定しないとエラーになってしまいます。エラーの内容を見てみると配列の0番目が定義されていないとあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
/* 失敗例 */ //単配列の宣言 var array = []; //for文で要素を格納する for(var i=0; i<2; i++){ for(var j=0; j<2; j++){ array[i][j] = "aaaa"; } } console.log(array[0][0]); //結果 Uncaught TypeError: Cannot set property '0' of undefined |
なので以下のようにして配列の要素数を指定します。for文の条件式で使われている変数を利用することで、数字を直接指定する必要がありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
//単配列の宣言 var array = []; //for文で要素を格納する for(var i=0; i<2; i++){ //配列の要素数を指定する array[i] = []; for(var j=0; j<2; j++){ array[i][j] = "aaaa"; } } console.log(array[0][0]); //結果 "aaaa" |