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;
}

Օգտագործելով տրված ֆունկցիան, գտեք զանգվածի տարրերի գումարը: