ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗jsPmSOInr 288 of 505 menu
Хочешь читать code.mu на своем родном языке? Помоги с переводом! Переведем мы сами, тебе нужно указать на ошибки перевода:) Оставляй заявку ->

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

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

byenru