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:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Să presupunem că avem de asemenea un array format din trei elemente:
let arr = [1, 2, 3];
Evident, nu putem pur și simplu să transmitem acest array ca parametru funcției, astfel:
let 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:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Dar există o cale mai simplă - să folosim operatorul spread:
let arr = [1, 2, 3];
func(...arr);
Prezența unei variabile nu este obligatorie - se poate aplica spread direct pe array:
func(...[1, 2, 3]);
Este dat array-ul:
let arr = [1, 2, 3, 4, 5];
Este dată de asemenea funcția:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Găsiți cu ajutorul funcției date suma elementelor array-ului.