Spread-operatoren i JavaScript
I ES6 dukket det opp en spesiell operator ...,
som kalles spread.
Når spread-operatoren står foran en array, deler den opp denne arrayen i enkeltverdier, og gjør arrayen om til et sett med parametere som er nødvendige for å kalle en funksjon.
Det høres sikkert uforståelig ut, så la oss
se på et enkelt eksempel. La oss si at vi
har en funksjon som tar 3 parametere
og returnerer summen deres:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
La oss si at vi også har en array med tre elementer:
let arr = [1, 2, 3];
Det er åpenbart at vi ikke bare kan sende denne arrayen som et parameter til funksjonen, slik:
let arr = [1, 2, 3];
func(arr);
For i dette tilfellet vil hele arrayen havne i den første parameteren til funksjonen, og inn i denne parameteren må man sende et tall (og det samme gjelder for de andre parameterne også).
Man kan selvfølgelig gjøre det på følgende måte:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Men det finnes en enklere måte - å bruke spread-operatoren:
let arr = [1, 2, 3];
func(...arr);
Å ha en variabel er ikke obligatorisk - man kan bruke spread direkte på arrayen:
func(...[1, 2, 3]);
Gitt en array:
let arr = [1, 2, 3, 4, 5];
Det er også gitt en funksjon:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Finn summen av elementene i arrayen ved hjelp av den gitte funksjonen.