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