Sobes.tech
Junior

Mi a különbség a spread és a rest operátorok között?

sobes.tech MI

Válasz az MI-től

A spread operátor (...) iterálható objektumokat (tömböket, szövegeket) bont szét egyedi elemekre, és gyakran használják tömbmásolat készítésére, objektumok összefűzésére vagy argumentumok átadására függvényeknek. A rest (...) operátor a maradék elemeket egy tömbbe gyűjti össze, destrukturáláskor vagy függvénydefiníciókban az argumentumok összegyűjtésére használják.

Spread használati példák:

// Tömb másolata
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Tömbök összefűzése
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Argumentumok átadása függvénynek
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Rest példák:

// A tömb destrukturálásakor a maradék elemek összegyűjtése
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Argumentumok összegyűjtése függvényben
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // első argumentum
  console.log(restArgs); // a többi argumentum tömbje
}
logArguments(1, 2, 3, 4); // Kiírja 1 és [2, 3, 4]

A fő különbség a céljukban rejlik: spread kiterjeszt, rest összegyűjt.