Оператор 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;
}
Намерете с помощта на дадената функция сумата на елементите на масива.