Junior
Na co se v JavaScriptu používají operátory spread a rest?
sobes.tech AI
Odpověď od AI
Operátor spread (...) se používá k "rozšíření" iterovatelných objektů (jako jsou pole nebo řetězce) na místech, kde se očekává nula nebo více argumentů (při volání funkcí) nebo prvků (při vytváření polí). Také se používá k sloučení vlastností objektů do nového objektu.
// Použití spread při volání funkce
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Použití spread pro sloučení polí
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Použití spread pro sloučení objektů
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 (...) se používá v syntaxi parametrů funkce ke sběru všech zbývajících argumentů do pole. To umožňuje funkci přijímat neurčitý počet argumentů. Také se používá při destrukturalizaci pole nebo objektu ke sběru zbývajících prvků nebo vlastností.
// Použití rest v parametrech funkce
function sum(...args) {
// args je nyní pole [1, 2, 3]
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Použití rest při destrukturalizaci pole
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Použití rest při destrukturalizaci objektu
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Hlavní rozdíl:
spread"rozšiřuje" prvky nebo vlastnosti.rest"shromažďuje" prvky nebo vlastnosti do pole nebo objektu.