Operator spread w JavaScript
W ES6 pojawił się specjalny operator ...,
nazywany spread.
Gdy operator spread znajduje się przed tablicą, rozdziela tę tablicę na pojedyncze wartości, przekształcając tablicę w zestaw parametrów wymaganych do wywołania funkcji.
Pewnie brzmi to niejasno, dlatego spójrzmy
na prostym przykładzie. Załóżmy, że mamy
funkcję przyjmującą 3 parametry
i zwracającą ich sumę:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Załóżmy, że mamy również tablicę z trzema elementami:
let arr = [1, 2, 3];
Oczywiście, nie możemy po prostu wziąć i przekazać tej tablicy jako parametr funkcji, w ten sposób:
let arr = [1, 2, 3];
func(arr);
Ponieważ w tym przypadku cała tablica trafi do pierwszego parametru funkcji, a do tego parametru trzeba przekazać liczbę (i do pozostałych parametrów również).
Oczywiście, można postąpić w następujący sposób:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Ale istnieje prostsza ścieżka - użycie operatora spread:
let arr = [1, 2, 3];
func(...arr);
Obecność zmiennej nie jest obowiązkowa - można stosować spread bezpośrednio do tablicy:
func(...[1, 2, 3]);
Dana jest tablica:
let arr = [1, 2, 3, 4, 5];
Dana jest również funkcja:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Znajdź za pomocą podanej funkcji sumę elementów tablicy.