Junior
Qual è la differenza tra gli operatori spread e rest?
sobes.tech AI
Risposta dell'AI
L'operatore di spread (...) espande oggetti iterabili (array, stringhe) in singoli elementi, ed è spesso usato per creare copie di array, unire oggetti o passare argomenti a funzioni. L'operatore di rest (...) raccoglie gli elementi rimanenti in un array, usato nella destrutturazione o nella definizione di funzioni per raccogliere argomenti.
Esempi di utilizzo di spread:
// Creare una copia di un array
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]
// Unire array
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]
// Passare argomenti a una funzione
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6
Esempi di utilizzo di rest:
// Raccogliere gli elementi rimanenti durante la destrutturazione di un array
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]
// Raccogliere argomenti in una funzione
function logArguments(arg1, ...restArgs) {
console.log(arg1); // primo argomento
console.log(restArgs); // array degli altri argomenti
}
logArguments(1, 2, 3, 4); // Stampa 1 e [2, 3, 4]
La differenza principale risiede nel loro scopo: spread espande, rest raggruppa.