より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

空の多重配列の宣言

結論から言うと、私は以下のようなコード。

       this.squares = [];
        for (let i = 0; i < this.columnNumber; i++) {
            this.squares[i] = Array(rowNumber).fill(null);
        }

NG集

オセロゲームを作っているときに、盤面を表現するために空の二重配列を作ろうとしてました。

あーじゃあ、Array.fillを入れ子にすればいいんじゃん?

developer.mozilla.org

Array(3).fill(Array(3).fill(null));

といった宣言ですね。これはNGです。

配列自体は宣言できますが代入するときにおかしなことが起きます。

f:id:rimever:20210108064146p:plain
あれっ? 指定してないインデックスにも値が入っている。