Sobes.tech
Junior

Na čo sa v JavaScripte používajú spread a rest operátory?

sobes.tech AI

Odpoveď od AI

Operátor spread (...) sa používa na "rozšírenie" iterovateľných objektov (ako sú polia alebo reťazce) na miestach, kde sa očakáva nula alebo viac argumentov (pri volaní funkcií) alebo prvkov (pri vytváraní polí). Tiež sa používa na spojenie vlastností objektov do nového objektu.

// Použitie spread pri volaní funkcie
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3

// Použitie spread na spojenie polí
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]

// Použitie spread na spojenie objektov
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }

Operátor rest (...) sa používa v syntaxe parametrov funkcie na zber všetkých zostávajúcich argumentov do poľa. To umožňuje funkcii prijímať neurčitý počet argumentov. Tiež sa používa pri destrukturalizácii polí alebo objektov na zber zostávajúcich prvkov alebo vlastností.

// Použitie rest v parametroch funkcie
function sum(...args) {
  // args je teraz pole [1, 2, 3]
  return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6

// Použitie rest pri destrukturalizácii poľa
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]

// Použitie rest pri destrukturalizácii objektu
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }

Hlavný rozdiel:

  • spread "rozširuje" prvky alebo vlastnosti.
  • rest "zhromažďuje" prvky alebo vlastnosti do poľa alebo objektu.