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ą:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Tarkime, kad taip pat turime masyvą iš trijų elementų:
let arr = [1, 2, 3];
Akivaizdu, kad negalime tiesiog paimti ir perduoti šio masyvo kaip funkcijos parametro, taip:
let 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:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Bet yra ir paprastesnis būdas - panaudoti spread operatorių:
let arr = [1, 2, 3];
func(...arr);
Kintamojo buvimas nėra privalomas - spread galima taikyti tiesiogiai masyvui:
func(...[1, 2, 3]);
Duotas masyvas:
let arr = [1, 2, 3, 4, 5];
Taip pat duota funkcija:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Raskite naudodami pateiktą funkciją masyvo elementų sumą.