Junior
Zašto se u JavaScript-u koriste spread i rest operatori?
sobes.tech АИ
Одговор од АИ
Operator spread (...) koristi se za "proširenje" iterabilnih objekata (kao što su nizovi ili stringovi) na mestima gde se očekuje nula ili više argumenata (pri pozivu funkcija) ili elemenata (pri kreiranju nizova). Takođe se koristi za spajanje svojstava objekata u novi objekat.
// Korišćenje spread-a pri pozivu funkcije
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Korišćenje spread-a za spajanje nizova
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Korišćenje spread-a za spajanje objekata
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }
Operator rest (...) koristi se u sintaksi parametara funkcije za skupljanje svih preostalih argumenata u niz. Ovo omogućava funkciji da prima neodređen broj argumenata. Takođe se koristi pri destrukturiranju nizova ili objekata za skupljanje preostalih elemenata ili svojstava.
// Korišćenje rest u parametrima funkcije
function sum(...args) {
// args je sada niz [1, 2, 3]
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Korišćenje rest pri destrukturiranju niza
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Korišćenje rest pri destrukturiranju objekta
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Glavna razlika:
spread"proširuje" elemente ili svojstva.rest"skuplja" elemente ili svojstva u niz/objekat.