Junior
Kam paredzēti spread un rest operatori JavaScript?
sobes.tech AI
Atbilde no AI
Operātors spread (...) tiek izmantots, lai "paplašinātu" iterējamus objektus (piemēram, masīvus vai virknes) vietās, kur sagaidāmi nulle vai vairāk argumentu (izsaucot funkcijas) vai elementu (veidojot masīvus). Tāpat tas tiek izmantots, lai apvienotu objektu īpašības jaunā objektā.
// Spread izmantošana funkcijas izsaukšanā
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Spread izmantošana masīvu apvienošanai
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Spread izmantošana objektu apvienošanai
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ātors rest (...) tiek izmantots funkcijas parametru sintaksē, lai savāktu visus atlikušos argumentus masīvā. Tas ļauj funkcijai saņemt nenoteiktu argumentu skaitu. Tāpat tas tiek izmantots, izkliedējot masīvu vai objektu, savācot atlikušos elementus vai īpašības.
// Rest izmantošana funkcijas parametros
function sum(...args) {
// args tagad ir masīvs [1, 2, 3]
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Rest izmantošana, izkliedējot masīvu
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Rest izmantošana, izkliedējot objektu
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Galvenā atšķirība:
Spread"paplašina" elementus vai īpašības.Rest"savāc" elementus vai īpašības masīvā/objektā.