Sobes.tech
Junior

Jaka jest różnica między operatorami spread i rest?

sobes.tech AI

Odpowiedź od AI

Operator rozprzestrzeniania (...) rozwija iterowalne obiekty (tablice, łańcuchy) na pojedyncze elementy i jest często używany do tworzenia kopii tablic, łączenia obiektów lub przekazywania argumentów do funkcji. Operator reszt (...) zbiera pozostałe elementy w jedną tablicę, używany w destrukturyzacji lub przy definiowaniu funkcji do zbierania argumentów.

Przykłady użycia spread:

// Tworzenie kopii tablicy
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Łączenie tablic
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Przekazywanie argumentów do funkcji
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Przykłady użycia rest:

// Zbieranie pozostałych elementów podczas destrukturyzacji tablicy
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Zbieranie argumentów w funkcji
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // pierwszy argument
  console.log(restArgs); // tablica pozostałych argumentów
}
logArguments(1, 2, 3, 4); // Wyświetli 1 i [2, 3, 4]

Główna różnica polega na ich przeznaczeniu: spread rozszerza, rest zbiera.