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:

javascriptfunction func(num1, num2, num3) {
  return num1 + num2 + num3;
}

Mějme také pole ze tří prvků:

javascriptlet arr = [1, 2, 3];

Je zřejmé, že nemůžeme jednoduše vzít a předat toto pole jako parametr funkci, takto:

javascriptlet 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:

javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);

Ale existuje i jednodušší cesta - použít operátor spread:

javascriptlet arr = [1, 2, 3];
func(...arr);

Přítomnost proměnné není povinná - lze aplikovat spread přímo na pole:

javascriptfunc(...[1, 2, 3]);
Задание 1

Je dáno pole:

javascriptlet arr = [1, 2, 3, 4, 5];

Je také dána funkce:

javascriptfunction func(num1, num2, num3, num4, num5) {
  return num1 + num2 + num3 + num4 + num5;
}

Pomocí uvedené funkce najděte součet prvků pole.