Sobes.tech
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:

  • spread elementlar yoki xususiyatlarni "kengaytiradi".
  • rest elementlar yoki xususiyatlarni "to'plab" massiv yoki ob'ektga joylashtiradi.