# Оператор 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; }`

Найдите с помощью приведенной функции сумму элементов массива.

← →
↑
en ru