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;
}
Օգտագործելով տրված ֆունկցիան, գտեք զանգվածի տարրերի գումարը: