Operátor spread v JavaScripte

V ES6 sa objavil špeciálny operátor ..., ktorý sa nazýva spread.

Keď operátor spread stojí pred polom, rozdelí toto pole na jednotlivé hodnoty, čím zmení pole na súbor parametrov potrebných na volanie funkcie.

Určite to znie nejasne, tak sa poďme pozrieť na jednoduchý príklad. Nech máme funkciu, ktorá prijíma 3 parametre a vráti ich súčet:

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

Nech máme tiež pole z troch prvkov:

javascriptlet arr = [1, 2, 3];

Je zrejmé, že nemôžeme jednoducho vziať a odovzdať toto pole ako parameter funkcie, takto:

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

Pretože v tomto prípade celé pole padne do prvého parametra funkcie, a do tohto parametra je potrebné odovzdať číslo (a aj do ostatných parametrov tiež).

Samozrejme, môžeme postupovať nasledovne:

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

Ale existuje jednoduchšia cesta - použiť operátor spread:

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

Prítomnosť premennej nie je povinná - môžeme aplikovať spread priamo na pole:

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

Dané pole:

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

Daná aj funkcia:

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

Nájdite pomocou danej funkcie súčet prvkov poľa.