Spread-operatorn i JavaScript
I ES6 dök en speciell operator upp, ...,
som kallas spread.
När spread-operatorn står framför en array, delar den upp denna array i individuella värden, och omvandlar arrayen till en uppsättning parametrar som behövs för att anropa en funktion.
Det låter säkert oklart, så låt oss
titta på ett enkelt exempel. Låt oss säga att vi
har en funktion som tar 3 parametrar
och returnerar deras summa:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Låt oss också säga att vi har en array med tre element:
let arr = [1, 2, 3];
Uppenbarligen kan vi inte bara ta och skicka denna array som en parameter till funktionen, så här:
let arr = [1, 2, 3];
func(arr);
För i det här fallet kommer hela arrayen att hamna i den första parametern i funktionen, och till denna parameter måste ett nummer skickas (och till de andra parametrarna också).
Man kan naturligtvis göra på följande sätt:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Men det finns ett enklare sätt - använda spread-operatorn:
let arr = [1, 2, 3];
func(...arr);
Att ha en variabel är inte obligatoriskt - man kan applicera spread direkt på arrayen:
func(...[1, 2, 3]);
Given en array:
let arr = [1, 2, 3, 4, 5];
Given också en funktion:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Hitta med hjälp av den givna funktionen summan av arrayens element.