Sobes.tech
Junior

Aký je rozdiel medzi operátormi spread a rest?

sobes.tech AI

Odpoveď od AI

Operátor rozšírenia (...) rozširuje iterovateľné objekty (pole, reťazce) na jednotlivé prvky a často sa používa na vytváranie kópií polí, spájanie objektov alebo odovzdávanie argumentov funkciám. Operátor zvyškov (...) zhromažďuje zvyšné prvky do jedného poľa, používa sa pri destrukturalizácii alebo pri definovaní funkcií na zber argumentov.

Príklady použitia spread:

// Vytvorenie kópie poľa
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Zlúčenie polí
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Odovzdanie argumentov funkcii
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Príklady použitia zvyškov:

// Zhromažďovanie zvyšných prvkov pri destrukturalizácii poľa
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Zhromažďovanie argumentov v funkcii
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // prvý argument
  console.log(restArgs); // pole zvyšných argumentov
}
logArguments(1, 2, 3, 4); // Vypíše 1 a [2, 3, 4]

Hlavný rozdiel spočíva v ich účele: spread rozširuje, rest zhromažďuje.