Operátor spread v JavaScriptu
V ES6 se objevil speciální operátor ...,
nazývaný spread.
Když operátor spread stojí před polem, rozdělí toto pole na jednotlivé hodnoty, a přemění pole na sadu parametrů potřebných pro volání funkce.
Zní to nejspíš nesrozumitelně, proto se podívejme
na jednoduchý příklad. Mějme funkci přijímající 3 parametry
a vracející jejich součet:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Mějme také pole ze tří prvků:
let arr = [1, 2, 3];
Je zřejmé, že nemůžeme jednoduše vzít a předat toto pole jako parametr funkci, takto:
let arr = [1, 2, 3];
func(arr);
Protože v tomto případě celé pole spadne do prvního parametru funkce, a do tohoto parametru je nutné předat číslo (a také do ostatních parametrů).
Samozřejmě lze postupovat následujícím způsobem:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Ale existuje i jednodušší cesta - použít operátor spread:
let arr = [1, 2, 3];
func(...arr);
Přítomnost proměnné není povinná - lze aplikovat spread přímo na pole:
func(...[1, 2, 3]);
Je dáno pole:
let arr = [1, 2, 3, 4, 5];
Je také dána funkce:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Pomocí uvedené funkce najděte součet prvků pole.