Spread-operaattori JavaScriptissä
ES6:ssa ilmestyi erikoinen operaattori ...,
jota kutsutaan spread:ksi.
Kun spread-operaattori on taulukon edessä, se jakaa taulukon erillisiksi arvoiksi, muuttaen taulukon joukoksi parametreja, joita tarvitaan funktion kutsussa.
Kuulostaa varmasti hämärältä, joten katsotaanpa
yksinkertaista esimerkkiä. Olkoon meillä
funktio, joka ottaa vastaan 3 parametria
ja palauttaa niiden summan:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Olkoon meillä myös taulukko, jossa on kolme alkiota:
let arr = [1, 2, 3];
On selvää, että emme voi yksinkertaisesti antaa tätä taulukkoa funktion parametrina, näin:
let arr = [1, 2, 3];
func(arr);
Silloinhan koko taulukko menisi funktion ensimmäiseen parametriin, vaikka tähän parametriin pitäisi antaa numero (samoin kuin muihinkin parametreihin).
Voimme tietysti tehdä seuraavasti:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Mutta on olemassa helpompikin tapa - käyttää spread-operaattoria:
let arr = [1, 2, 3];
func(...arr);
Muuttujan olemassaolo ei ole pakollista - spreadiä voi soveltaa suoraan taulukkoon:
func(...[1, 2, 3]);
Annettu taulukko:
let arr = [1, 2, 3, 4, 5];
Annettu myös funktio:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Etsi annetun funktion avulla taulukon alkioiden summa.