Аператар 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;
}

Знайдзіце з дапамогай дадзенай функцыі суму элементаў масіва.