Spread operator u JavaScript-u

U ES6 je uveden specijalni operator ..., koji se naziva spread.

Kada se spread operator nalazi ispred niza, on razbija taj niz na pojedinačne vrednosti, pretvarajući niz u skup parametara potrebnih za poziv funkcije.

Zvuči možda nejasno, pa hajde da pogledamo na jednostavnom primeru. Pretpostavimo da imamo funkciju koja prima 3 parametra i vraća njihov zbir:

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

Pretpostavimo da takođe imamo niz od tri elementa:

javascriptlet arr = [1, 2, 3];

Očigledno je da ne možemo jednostavno proslediti ovaj niz kao parametar funkciji, ovako:

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

Jer u tom slučaju ceo niz biće prosleđen prvom parametru funkcije, a u ovaj parametar treba proslediti broj (kao i u ostale parametre takođe).

Naravno, moguće je postupiti na sledeći način:

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

Ali postoji i jednostavniji način - upotreba spread operatora:

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

Prisustvo promenljive nije obavezno - spread se može primeniti direktno na niz:

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

Dat je niz:

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

Data je i funkcija:

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

Pronađite pomoću date funkcije zbir elemenata niza.