Оператори spread дар JavaScript

Дар ES6 оператори махсуси ... пайдо шуд, ки spread номида мешавад.

Вақте ки оператори spread дар назди массив истода бошад, он ин массивро ба арзишҳои ҷудогона тақсим мекунад, массивро ба маҷмӯи параметрҳое табдил медиҳад, ки барои фарохонӣ кардани функсия зарур аст.

Шояд садо надиҳад, бинобар ин биёед ба мисоли содда нигарем. Бигзор мо функсияе дорем, ки 3 параметр қабул мекунад ва ҷамъи онҳоро бармегардонад:

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

Бигзор мо инчунин массиве аз се унсур дорем:

javascriptlet arr = [1, 2, 3];

Ошкорост, ки мо наметавонем фақат гирифта ва ин массивро ба ҳамчун параметри функсия бифиристем, ин тавр:

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

Зеро дар ин ҳолат тамоми массив ба якумин параметри функсия меафтад, ва ба ин параметр рақам фиристодан лозим аст (ва ба параметрҳои дигар ҳамчунон).

Албатта, метавон чунин рафтор кард:

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

Аммо роҳи содатар ҳам вуҷуд дорад - истифода бурдани оператори spread:

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

Доштани тағирёбанда зарурӣ нест - метавон spread-ро рост ба массив татбиқ кард:

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

Массив дода шудааст:

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

Функсия низ дода шудааст:

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

Бо истифода аз функсияи додашуда ҷамъи унсурҳои массивро ёбед.