Оператор spread в JavaScript
В ES6 появился специальный оператор ...
,
называющийся spread.
Когда оператор spread стоит перед массивом, он разделяет этот массив на отдельные значения, превращая массив в набор параметров, необходимых для вызова функции.
Наверняка звучит непонятно, поэтому давайте
посмотрим на простом примере. Пусть у нас
есть функция, принимающая 3
параметра
и возвращающая их сумму:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Пусть у нас также есть массив из трех элементов:
let arr = [1, 2, 3];
Очевидно, что мы не можем просто взять и передать этот массив параметром функции, вот так:
let arr = [1, 2, 3];
func(arr);
Ведь в этом случае весь массив попадет в первый параметр функции, а в этот параметр необходимо передавать число (да и в остальные параметры тоже).
Конечно же, можно поступить следующим образом:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Но есть и более простой путь - использовать оператор spread:
let arr = [1, 2, 3];
func(...arr);
Наличие переменной не является обязательным - можно применять spread прямо к массиву:
func(...[1, 2, 3]);
Дан массив:
let arr = [1, 2, 3, 4, 5];
Дана также функция:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Найдите с помощью приведенной функции сумму элементов массива.