JavaScriptで配列を1つにマージする関数

では、任意の数の配列をパラメータとして受け取り、それらの要素を1つの配列にマージする関数 merge を実装してみましょう。

以下は、私たちの関数の動作例です:

javascriptlet result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // [1, 2, 3, 4, 5, 6, 7, 8, 9] と表示されます

実装を始めましょう。まず、渡された配列を1つの二次元配列として取得しましょう。

javascriptmerge([1, 2, 3], [4, 5, 6], [7, 8, 9]);

function merge(...arrs){
  console.log(arrs); // [ [1, 2, 3,] [4, 5, 6], [7, 8, 9] ] と表示されます
}

では、この二次元配列を一次元配列にマージしましょう。 そのために、メソッド concat とスプレッド演算子を使います。

javascriptlet arrs   = [ [1, 2, 3,], [4, 5, 6], [7, 8, 9] ];

let result = [].concat(...arrs);
console.log(result); // [1, 2, 3, 4, 5, 6, 7, 8, 9] と表示されます

では、このコードを関数 merge に追加しましょう。

javascriptfunction merge(...arrs) {
  return [].concat(...arrs);
}

let result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // [1, 2, 3, 4, 5, 6, 7, 8, 9] と表示されます

ご覧の通り、この関数も非常に簡潔になりました。