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:

javascriptfunction func(num1, num2, num3) {
  return num1 + num2 + num3;
}

Låt oss också säga att vi har en array med tre element:

javascriptlet arr = [1, 2, 3];

Uppenbarligen kan vi inte bara ta och skicka denna array som en parameter till funktionen, så här:

javascriptlet 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:

javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);

Men det finns ett enklare sätt - använda spread-operatorn:

javascriptlet arr = [1, 2, 3];
func(...arr);

Att ha en variabel är inte obligatoriskt - man kan applicera spread direkt på arrayen:

javascriptfunc(...[1, 2, 3]);
Задание 1

Given en array:

javascriptlet arr = [1, 2, 3, 4, 5];

Given också en funktion:

javascriptfunction func(num1, num2, num3, num4, num5) {
  return num1 + num2 + num3 + num4 + num5;
}

Hitta med hjälp av den givna funktionen summan av arrayens element.