Spread operators JavaScript
ES6 parādījās īpašs operators ...,
ko sauc par spread.
Kad spread operators atrodas pirms masīva, tas sadala šo masīvu atsevišķās vērtībās, pārvēršot masīvu parametru kopā, kas nepieciešama funkcijas izsaukumam.
Iespējams, izklausās nesaprotami, tāpēc apskatīsim
vienkāršu piemēru. Pieņemsim, ka mums ir
funkcija, kas pieņem 3 parametrus
un atgriež to summu:
javascriptfunction func(num1, num2, num3) {
return num1 + num2 + num3;
}
Pieņemsim, ka mums ir arī masīvs no trim elementiem:
javascriptlet arr = [1, 2, 3];
Skaidrs, ka mēs nevaram vienkārši paņemt un padot šo masīvu kā funkcijas parametru, šādi:
javascriptlet arr = [1, 2, 3];
func(arr);
Jo šajā gadījumā viss masīvs nonāks pirmajā funkcijas parametrā, bet šajā parametrā jāpadod skaitlis (un arī pārējos parametrus arī).
Protams, var rīkoties šādi:
javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Bet ir arī vienkāršāks veids - izmantot spread operatoru:
javascriptlet arr = [1, 2, 3];
func(...arr);
Mainīgā esamība nav obligāta - spread var lietot tieši uz masīva:
javascriptfunc(...[1, 2, 3]);
Dots masīvs:
javascriptlet arr = [1, 2, 3, 4, 5];
Dota arī funkcija:
javascriptfunction func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Atrodiet ar dotās funkcijas palīdzību masīva elementu summu.