Sobes.tech
Junior

Jaký je rozdíl mezi operátory spread a rest?

sobes.tech AI

Odpověď od AI

Operátor rozšíření (...) rozšiřuje iterovatelné objekty (pole, řetězce) na jednotlivé prvky a často se používá k vytváření kopií polí, slučování objektů nebo předávání argumentů funkcím. Operátor zbytku (...) shromažďuje zbývající prvky do jednoho pole, které se používá při destrukturalizaci nebo při definici funkcí pro sběr argumentů.

Příklady použití spread:

// Vytvoření kopie pole
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Sloučení polí
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Předání argumentů funkci
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Příklady použití zbytku:

// Sbírání zbývajících prvků při destrukturalizaci pole
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Sbírání argumentů v funkci
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // první argument
  console.log(restArgs); // pole zbývajících argumentů
}
logArguments(1, 2, 3, 4); // Vypíše 1 a [2, 3, 4]

Hlavní rozdíl spočívá v jejich účelu: spread rozšiřuje, rest shromažďuje.