Sobes.tech
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.