経緯 配列をオブジェクトで初期化したい場合、 new Array(3).fill({foo: "ふう", bar:"ばあ"}) というコードだと、全てのインデックスが同じオブジェクトを指してしまうので、 調べたら new Array(3).fill().map(() => ({foo: "ふう", bar: "ばあ"})) という方法が出てきたので試したらうまく行きました。 疑問 このfill()要らなくない?new Array(3).map(() => ({foo: "ふう", bar: "ばあ"})) って書けばよさそうな気がします。 答え fill()は必要。 理由はここに書いてありますが、英語なので日本語で&自分で実行しながら書いていきます。 itnext.io まず、JavaScriptの配列は、実質的には数値をキーとしたオブジェクトです。 例えば、以下のように配列を初期化します