Функция, сливающая массивы в один в JavaScript

Нека сега реализираме функцията 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]

Нека започнем реализацията. Първо, нека получим подадените масиви под формата на един двуизмерен масив:

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 и оператора spread:

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]

Както виждате, тази функция също се оказа много лаконична.