5.javascriptの多次元配列
javascriptの多次元配列です。
javaとかcなどとは、書き方が異なるので、注意が必要です。
誤った例です。
function test(){ var map = [][]; // エラーになる map[0][0] = 0; // エラー }
javaなどでは、多次元配列を[][]で記述していきますが、javascriptではそうもいきません。
[[]]にする必要があります。
サンプルを見ます
function test(){ var print = function(value){document.write(value)}; // 4*4の2次元配列 var map = [ [0,0,0,0], [0,0,0,0], [0,0,0,0], [0,0,0,0] ]; for(var i = 0;i < 4;++i){ for(var j = 0;j < 4;++j){ print(map[i][j]); if(j == 3) { print("<br>"); } } } } 実行結果 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0
[]内に[]を入れることで意図したような配列を実現できました。
空の多次元配列の定義
今度は空の状態の多次元配列の定義です。
function test(){ var print = function(value){document.write(value)}; // 空で4×4の配列を定義 var map = [ [ , , , ], [ , , , ], [ , , , ], [ , , , ], ]; // 全てundefinedで表示される for(var i = 0;i < 4;++i){ for(var j = 0;j < 4;++j){ print(map[i][j]); if(j == 3) { print("<br>"); } } } } 実行結果 undefined * 4 undefined * 4 undefined * 4 undefined * 4
値を代入したいときは、forなどで要素を満たします。
親には追加できないが子には追加できる
javascriptでは、親には要素の追加ができませんが、子には追加できます。
どういうことかというと
function test(){ var print = function(value){document.write(value)}; // 空で2×2の配列を定義 var map = [ [ , ], [ , ], ]; // 一次元の配列の要素を4に拡張する for(var i = 0;i < 2;++i){ for(var j = 0;j < 4;++j){ map[i][j] = i + j; print(map[i][j]); if(j == 3) { print("<br>"); } } } // 2次元目の配列を4に拡張する(これはエラーになります) for(var i = 0;i < 4;++i){ for(var j = 0;j < 2;++j){ map[i][j] = i + j; print(map[i][j]); if(j == 1) { print("<br>"); } } } } 実行結果 0123 1234