Operatore spread in JavaScript
In ES6 è apparso un operatore speciale ...,
chiamato spread.
Quando l'operatore spread precede un array, lo scompone in valori separati, trasformando l'array in un insieme di parametri necessari per chiamare una funzione.
Sicuramente suona poco chiaro, quindi diamo un'occhiata
a un semplice esempio. Supponiamo di avere
una funzione che accetta 3 parametri
e restituisce la loro somma:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Supponiamo inoltre di avere un array di tre elementi:
let arr = [1, 2, 3];
Ovviamente, non possiamo semplicemente prendere e passare questo array come parametro alla funzione, in questo modo:
let arr = [1, 2, 3];
func(arr);
In questo caso, infatti, l'intero array finirebbe nel primo parametro della funzione, mentre in questo parametro è necessario passare un numero (e anche negli altri parametri).
Naturalmente, si potrebbe fare nel modo seguente:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Ma c'è un modo più semplice: usare l'operatore spread:
let arr = [1, 2, 3];
func(...arr);
La presenza di una variabile non è obbligatoria - si può applicare spread direttamente all'array:
func(...[1, 2, 3]);
Dato l'array:
let arr = [1, 2, 3, 4, 5];
Data anche la funzione:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Trova la somma degli elementi dell'array utilizzando la funzione data.