Operatorul spread în JavaScript

În ES6 a apărut un operator special ..., numit spread.

Când operatorul spread este plasat înaintea unui array, acesta separă acest array în valori individuale, transformând array-ul într-un set de parametri necesari pentru apelarea funcției.

Cu siguranță sună neclar, așa că haideți să vedem un exemplu simplu. Să presupunem că avem o funcție care acceptă 3 parametri și returnează suma acestora:

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

Să presupunem că avem de asemenea un array format din trei elemente:

javascriptlet arr = [1, 2, 3];

Evident, nu putem pur și simplu să transmitem acest array ca parametru funcției, astfel:

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

Deoarece în acest caz întregul array va intra în primul parametru al funcției, iar în acest parametru este necesar să transmitem un număr (și în restul parametrilor la fel).

Desigur, am putea proceda în felul următor:

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

Dar există o cale mai simplă - să folosim operatorul spread:

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

Prezența unei variabile nu este obligatorie - se poate aplica spread direct pe array:

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

Este dat array-ul:

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

Este dată de asemenea funcția:

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

Găsiți cu ajutorul funcției date suma elementelor array-ului.