はじめに
配列の要素をコピーする関数を作成します。
やりたいことを以下のような感じです。
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 で複製します。