Spread operatorius JavaScript'e

ES6 atsirado specialus operatorius ..., vadinamas spread.

Kai spread operatorius yra prieš masyvą, jis išskaido šį masyvą į atskiras reikšmes, paverčiant masyvą parametų rinkiniu, reikalingu funkcijos iškvietimui.

Tikriausiai skamba nesuprantamai, todėl pažiūrėkime paprastu pavyzdžiu. Tarkime, kad turime funkciją, priimančią 3 parametrus ir grąžinančią jų sumą:

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

Tarkime, kad taip pat turime masyvą iš trijų elementų:

javascriptlet arr = [1, 2, 3];

Akivaizdu, kad negalime tiesiog paimti ir perduoti šio masyvo kaip funkcijos parametro, taip:

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

Juk šiuo atveju visas masyvas pateks į pirmąjį funkcijos parametrą, o į šį parametrą reikia perduoti skaičių (ir į likusius parametrus taip pat).

Žinoma, galima elgtis taip:

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

Bet yra ir paprastesnis būdas - panaudoti spread operatorių:

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

Kintamojo buvimas nėra privalomas - spread galima taikyti tiesiogiai masyvui:

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

Duotas masyvas:

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

Taip pat duota funkcija:

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

Raskite naudodami pateiktą funkciją masyvo elementų sumą.