Junior
JavaScriptте spread жана rest операторлору эмне үчүн колдонулат?
sobes.tech AI
AIден жооп
spread (...) оператору, қайталанган объекттерди (мисалы, массивдер же саптар) функция чакырганда же массивдер түзүүдө нөл же көп аргументтер же элементтер күтүлүүчү жерлерде "кеңейтүү" үчүн колдонулат. Ал ошондой эле объекттердин мүнөздөмөлөрүн жаңы объектке бириктирүү үчүн колдонулат.
// Spread колдонуу функция чакырганда
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Массивдерди бириктирүү үчүн spread колдонуу
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Объекттерди бириктирүү үчүн spread колдонуу
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2, c: 3, d: 4 }
rest (...) оператору, функциянын параметрлеринин синтаксисиңде, калган бардык аргументтерди массивге чогултуу үчүн колдонулат. Бул функцияга белгисиз сандагы аргументтерди кабыл алууга мүмкүндүк берет. Ал ошондой эле массивдерди же объекттерди деструктуризациялоо учурунда калган элементтерди же мүнөздөмөлөрдү чогултуу үчүн колдонулат.
// Rest колдонуу функциянын параметрлеринде
function sum(...args) {
// args азыр [1, 2, 3] массив
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Массив деструктуризациясында rest колдонуу
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Объект деструктуризациясында rest колдонуу
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Негизги айырмасы:
spread- элементтерди же мүнөздөмөлөрдү "кеңейтет",rest- элементтерди же мүнөздөмөлөрдү "жыйнайт" жана массивге/объектке топтойт.