Аператар spread у JavaScript
У ES6 з'явіўся спецыяльны аператар ...
,
які называецца spread.
Калі аператар spread стаіць перад масівам, ён падзяляе гэты масіў на асобныя значэнні, ператвараючы масіў у набор параметраў, неабходных для выкліку функцыі.
Напэўна, гучыць незразумела, таму давайце
паглядзім на простым прыкладзе. Хай у нас
ёсць функцыя, якая прымае 3
параметры
і вяртае іх суму:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Хай у нас таксама ёсць масіў з трох элементаў:
let arr = [1, 2, 3];
Відавочна, што мы не можам проста ўзяць і перадаць гэты масіў параметрам функцыі, вось так:
let arr = [1, 2, 3];
func(arr);
Бо ў гэтым выпадку ўвесь масіў трапіць у першы параметр функцыі, а ў гэты параметр неабходна перадаваць лік (ды і ў астатнія параметры таксама).
Вядома ж, можна паступіць наступным чынам:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Але ёсць і больш просты шлях - выкарыстаць аператар spread:
let arr = [1, 2, 3];
func(...arr);
Наяўнасць зменнай не з'яўляецца абавязковай - можна ўжываць spread непасрэдна да масіва:
func(...[1, 2, 3]);
Дадзены масіў:
let arr = [1, 2, 3, 4, 5];
Дадзена таксама функцыя:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Знайдзіце з дапамогай дадзенай функцыі суму элементаў масіва.