Spread operaator JavaScriptis
ES6-s ilmus spetsiaalne operaator ...,
mida nimetatakse spread.
Kui spread operaator asub massiivi ees, jaotab see massiivi eraldi väärtusteks, muutes massiivi funktsiooni väljakutseks vajalikeks parameetriteks.
See kõlab kindlasti segaselt, nii et vaatame
lihtsat näidet. Olgu meil funktsioon, mis võtab
3 parameetrit ja tagastab nende summa:
javascriptfunction func(num1, num2, num3) {
return num1 + num2 + num3;
}
Olgu meil ka kolmest elemendist koosnev massiiv:
javascriptlet arr = [1, 2, 3];
Ilmselgelt ei saa me lihtsalt võtta ja edastada seda massiivi funktsiooni parameetrina, nii:
javascriptlet arr = [1, 2, 3];
func(arr);
Sest sel juhul satub kogu massiiv funktsiooni esimesse parameetrisse, kuid sellesse parameetrisse tuleb edastada number (ja ka ülejäänud parameetritesse samuti).
Loomulikult võib toimida järgmiselt:
javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Kuid on olemas ka lihtsam viis - kasutada spread operaatorit:
javascriptlet arr = [1, 2, 3];
func(...arr);
Muutuja olemasolu ei ole kohustuslik - spreadi saab rakendada otse massiivile:
javascriptfunc(...[1, 2, 3]);
Antud massiiv:
javascriptlet arr = [1, 2, 3, 4, 5];
Antud ka funktsioon:
javascriptfunction func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Leia antud funktsiooni abil massiivi elementide summa.