Operatore di diffusione
L’operatore di diffusione “diffonde” i valori in un iterabile (array, stringhe) su zero o più argomenti o elementi. Spiegherò esattamente cosa significa in seguito. Ma prima, diamo un’occhiata a come potremmo combinare due array:
Questo metodo funziona e fa esattamente quello che vogliamo: prendere arr2 e incollarlo alla fine di arr1. Ma questo ci richiede di ricordare il metodo concat. Sarebbe più bello essere in grado di fare qualcosa di simile: . Ecco cosa succede se ci proviamo:
Ora abbiamo finito con un array nidificato. Potremmo usare un ciclo for, ma questo è un sacco di codice per eseguire un compito relativamente semplice. Grazie a ES6 ora abbiamo un modo più semplice per combinare due array: l’operatore di diffusione.
Come accennato in precedenza, l’operatore spread prende un array (o qualsiasi iterabile) e lo diffonde valori. Diamo un’occhiata a come funziona:
Questo è molto più semplice! L’operatore di diffusione ( … ) prende i valori di arr1 e li distribuisce su arr2. Potremmo anche scrivere l’esempio sopra in questo modo:
L’operatore spread può essere utilizzato anche in una chiamata di funzione. Diciamo che abbiamo una funzione che prende un numero di parametri e abbiamo i parametri che vogliamo passarlo memorizzati in un array. Come possiamo chiamare la funzione e passare la matrice di parametri? Ecco come lo faremmo prima di ES6:
Ancora una volta, sarebbe bello essere in grado di fare qualcosa di simile: mySum(params). Ecco cosa succede se ci proviamo:
Usando l’operatore spread possiamo scrivere l’esempio sopra come segue:
Come si può vedere, l’operatore spread prende la matrice di parametri e li diffonde attraverso gli argomenti nella chiamata di funzione. Ma cosa succede se abbiamo bisogno della nostra funzione per essere in grado di lavorare con un numero sconosciuto di parametri? Ecco dove entra in gioco il parametro rest.