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.