Junior
Pentru ce sunt folosiți operatorii spread și rest în JavaScript?
sobes.tech AI
Răspuns de la AI
Operatorul spread (...) este utilizat pentru a "extinde" obiecte iterabile (cum ar fi array-uri sau șiruri de caractere) în locuri unde se așteaptă zero sau mai mulți argumente (la apelarea funcțiilor) sau elemente (la crearea array-urilor). De asemenea, este folosit pentru a combina proprietățile obiectelor într-un nou obiect.
// Utilizarea spread în apelul funcției
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Utilizarea spread pentru combinarea array-urilor
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Utilizarea spread pentru combinarea obiectelor
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }
Operatorul rest (...) este utilizat în sintaxa parametrilor funcției pentru a aduna toți argumentele rămase într-un array. Acest lucru permite funcției să primească un număr nedefinit de argumente. De asemenea, este folosit în destrucțurarea array-urilor sau obiectelor pentru a aduna elementele sau proprietățile rămase.
// Utilizarea rest în parametrii funcției
function sum(...args) {
// args acum este un array [1, 2, 3]
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Utilizarea rest în destrucțurarea array-urilor
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Utilizarea rest în destrucțurarea obiectelor
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Diferența principală:
spread"extinde" elementele sau proprietățile.rest"adună" elementele sau proprietățile într-un array/obiect.