機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

【JavaScript】配列の要素をn回コピーする関数

はじめに

配列の要素をコピーする関数を作成します。
やりたいことを以下のような感じです。

const r = f([1, 2, 3], 3);
console.log(r); // [1, 2, 3, 1, 2, 3, 1, 2, 3]

実装

なんとなく以下のような実装にしました。

const f = (a, n) => (new Array(n).fill(0)).reduce(p => p.concat(a), []);

解説します。
Array コンストラクタに number 型の引数を 1 つ与えると、その要素が undefined で指定サイズの配列が作成されます。
要素が undefined のままだとよくないので fill メソッドで値を格納します。
要素が undefined のままだと Array.prototype のメソッドがうまく動作しないためです。
あとは、a を複製したいので、reduce で複製します。

テスト

Chromeデベロッパーツールで実行した結果を貼り付けておきます。

目次へ戻る