JavaScript-da spread operatori

ES6-da spread deb ataladigan ... maxsus operatori paydo bo'ldi.

Spread operatori massiv oldida turganida, u massivni alohida qiymatlarga ajratadi, massivni funktsiya chaqiruvi uchun zarur bo'lgan parametrlar to'plamiga aylantiradi.

Ehtimol, bu tushunarsiz tuyuladi, shuning uchun keling oddiy misolni ko'rib chiqaylik. Faraz qilaylik, bizda 3 ta parametr qabul qiladigan va ularning yig'indisini qaytaradigan funktsiya mavjud:

javascriptfunction func(num1, num2, num3) {
  return num1 + num2 + num3;
}

Faraz qilaylik, bizda uchta elementdan iborat massiv ham mavjud:

javascriptlet arr = [1, 2, 3];

Shubhasiz, biz bu massivni oddiygina olib, funktsiyaga parametr sifatida berib bo'lmaydi, mana shu tarzda:

javascriptlet arr = [1, 2, 3];
func(arr);

Chunki bu holda butun massiv funktsiyaning birinchi parametriga tushadi, va bu parametrga son berish kerak (va boshqa parametrlarga ham).

Albatta, quyidagicha amalga oshirish mumkin:

javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);

Ammo yanada oddiyroq yo'li mavjud - spread operatoridan foydalanish:

javascriptlet arr = [1, 2, 3];
func(...arr);

O'zgaruvchining mavjudligi majburiy emas - spread ni to'g'ridan-to'g'ri massivga qo'llash mumkin:

javascriptfunc(...[1, 2, 3]);
Задание 1

Massiv berilgan:

javascriptlet arr = [1, 2, 3, 4, 5];

Shuningdek, funktsiya berilgan:

javascriptfunction func(num1, num2, num3, num4, num5) {
  return num1 + num2 + num3 + num4 + num5;
}

Berilgan funktsiya yordamida massiv elementlari yig'indisini toping.