Junior
Kokiu tikslu JavaScript'e naudojami spread ir rest operatoriai?
sobes.tech AI
Atsakymas iš AI
Operatorius spread (...) naudojamas "išplėsti" iteruojamus objektus (tokius kaip masyvai ar eilutės) vietose, kur tikimasi nulių ar daugiau argumentų (kviečiant funkcijas) arba elementų (sukuriant masyvus). Taip pat jis taikomas objektų savybių sujungimui į naują objektą.
// Naudojimas spread kviečiant funkciją
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Naudojimas spread sujungiant masyvus
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Naudojimas spread sujungiant objektus
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }
Operatorius rest (...) naudojamas funkcijos parametro sintaksėje surinkti visus likusius argumentus į masyvą. Tai leidžia funkcijai gauti nenustatytą argumentų skaičių. Taip pat jis taikomas išskleidžiant masyvą ar objektą, surenkant likusius elementus ar savybes.
// Naudojimas rest funkcijos parametruose
function sum(...args) {
// args dabar yra masyvas [1, 2, 3]
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Naudojimas rest išskleidžiant masyvą
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Naudojimas rest išskleidžiant objektą
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Pagrindinis skirtumas:
Spread"išplečia" elementus ar savybes.Rest"surinkia" elementus ar savybes į masyvą/objektą.