Edited at

JavaScriptにおける2次元配列のスマートな初期化〜ゼロで埋める例


はじめに

2次元配列はテーブルのようなものを表せるのでいろいろな場面で使用したくなることが多々あると思う。

そこで今回はJavaScriptNxM2次元配列ゼロ初期化するスマートな方法をここにメモしておこうと思う。


やりかた

調べてみて最初に私がわかりやすさとかっこよさを兼ね備えていると思った方法がこちら。


やりかたその1

let table = Array.from(new Array(N), () => new Array(M).fill(0));


こちらのやりかたも良いと思った。


やりかたその2

let table = [...Array(N)].map(() => Array(M).fill(0));


ただなんかその理屈で行くとこのやり方もいけそうな気がする。


やりかたその3

let table = Array.from([...Array(N)], () => Array(M).fill(0));


調べてみたらfrommapとやっていることほぼ変わらないので好みの問題か。

new Array()っていう時代でもなさそうなのでやりかたその2やりかたその3が今風だと思われる。

個人的にはやりかたその2を推す感じになりそう。(mapは他言語でも結構メジャーなので)

ここで使用しているアロー関数スプレッド構文ES2015の範囲になるが、

まあ使えない環境にみなさんいることはないだろう。

ESの開拓がどんどん進んでもっと書きやすくなったら追記していこうと思う。


参考元

2次元配列の初期化(ES2015)

↑の記事のコメント欄に記述されている内容を一部取り上げさせてもらった。感謝。


さいごに

結論に個人的な推しを最初に書くべきか考えている。

なんか変だと感じたらやりかたその1やりかたその2を入れ替えて書き直すかもしれません。