概要
JavaScriptだと多次元配列を直接宣言できないらしい。
ググってみると、入れ子のfor文で作成するのがセオリーみたい。
配列作るだけなのに冗長だなぁと思って、シンプルにしてみた。
セオリー
3行5列の配列をfor文で作る場合こんな感じ。
var array = [];
for(var i=0; i<3; i++){
array[i] = [];
for(var j=0; j<5; j++){
array[i][j] = '';
}
}
array[i][j]
に 0 を入れておけば、各要素が数値型になるのでそのまま計算可能。
分かりやすいけど、ただの変数宣言と続けて記述すると、ぼてっとして見える。
シンプルに
セオリーでは要素の個数だけ縦横に宣言していく感じだけど、考え方を変えてみる。
var array = [];
for(var i=0; i<3; i++) array.push(Array(5));
空の配列に、要素が5つの配列を3回プッシュしてやれば、3行5列の多次元配列になる。
見た目もスッキリ^^ (ちなみに各要素はnull
)
セオリーでも触れた数値型にしたければ、for文の中をarray.push(Array(5).fill(0))
にしてやれば、全要素が 0 になる。
ショートハンド
可読性は落ちるけど、ワンライナーにしてみた。
for(a=[]; a.length<3;) a.push(Array(5));
for文の初期値で配列を宣言。
繰り返しの中で配列の要素が増えていくので、要素数を繰り返し終了の条件にすれば、変化式も省略できちゃう。