Junior
JavaScriptda spread va rest operatorlari nima uchun ishlatiladi?
sobes.tech AI
AIdan javob
spread (...) operatori takrorlanadigan ob'ektlarni (masalan, massivlar yoki satrlar) funksiyalarni chaqirishda yoki massivlar yaratishda nol yoki undan ko'p argumentlar yoki elementlar uchun kutayotgan joylarga "kengaytirish" uchun ishlatiladi. Shuningdek, u ob'ektlarning xususiyatlarini yangi ob'ektga birlashtirish uchun ham qo'llaniladi.
// Funksiya chaqiruvida spreaddan foydalanish
const numbers = [1, 2, 3];
console.log(...numbers); // 1 2 3
// Massivlarni birlashtirish uchun spreaddan foydalanish
const arr1 = [1, 2];
const arr2 = [3, 4];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
// Ob'ektlarni birlashtirish uchun spreaddan foydalanish
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 (...) operatori funksiyalar parametrlarining sintaksisida qolgan barcha argumentlarni massivga to'plash uchun ishlatiladi. Bu funksiyaga cheksiz argumentlar qabul qilish imkonini beradi. Shuningdek, u massiv yoki ob'ekt destrukturizatsiyasida qolgan elementlar yoki xususiyatlarni to'plash uchun ham qo'llaniladi.
// Funksiya parametrlarida restdan foydalanish
function sum(...args) {
// args endi [1, 2, 3] massividir
return args.reduce((total, current) => total + current, 0);
}
console.log(sum(1, 2, 3)); // 6
// Massiv destrukturizatsiyasida restdan foydalanish
const [first, second, ...restOfArray] = [1, 2, 3, 4, 5];
// first = 1, second = 2, restOfArray = [3, 4, 5]
// Ob'ekt destrukturizatsiyasida restdan foydalanish
const { a, b, ...restOfObject } = { a: 1, b: 2, c: 3, d: 4 };
// a = 1, b = 2, restOfObject = { c: 3, d: 4 }
Asosiy farq:
spreadelementlar yoki xususiyatlarni "kengaytiradi".restelementlar yoki xususiyatlarni "to'plab" massiv yoki ob'ektga joylashtiradi.