Operator spread v JavaScriptu
V ES6 se je pojavil poseben operator ...,
imenovan spread.
Ko operator spread stoji pred matriko (seznamom), jo razdeli na posamezne vrednosti, spremenivši matriko v niz parametrov, potrebnih za klic funkcije.
Zagotovo zveni nerazumljivo, zato poglejmo
preprost primer. Naj imamo funkcijo, ki sprejme
3 parametre
in vrne njihovo vsoto:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Naj imamo tudi matriko treh elementov:
let arr = [1, 2, 3];
Očitno je, da te matrike ne moremo preprosto prenesti kot parameter funkcije, takole:
let arr = [1, 2, 3];
func(arr);
Kajti v tem primeru bo celotna matrika padla v prvi parameter funkcije, v ta parameter pa je potrebno prenesti številko (in tudi v ostale parametre prav tako).
Seveda lahko ravnamo na naslednji način:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Toda obstaja tudi enostavnejša pot - uporabiti operator spread:
let arr = [1, 2, 3];
func(...arr);
Prisotnost spremenljivke ni obvezna - spread lahko uporabimo neposredno na matriki:
func(...[1, 2, 3]);
Podana je matrika:
let arr = [1, 2, 3, 4, 5];
Podana je tudi funkcija:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
S pomočjo navedene funkcije poiščite vsoto elementov matrike.