JavaScript-ի কলբեք ֆունկցիաները
Ֆունկցիաները կարող են փոխանցվել որպես պարամետրեր այլ ֆունկցիաների: Նման ֆունկցիա-պարամետրերը կոչվում են կոլբեքներ (callback): Եկեք դիտարկենք դրանց հետ աշխատանքը օրինակով:
Ենթադրենք, մենք ուզում ենք ստեղծել մի ֆունկցիա, որն առաջին պարամետրով կվերցնի զանգված, իսկ երկրորդով՝ կոլբեք, որը կկիրառի զանգվածի յուրաքանչյուր տարրի նկատմամբ:
function each(arr, callback) {
// այստեղ ինչ-որ կոդ
}
Եկեք գրենք մեր ֆունկցիայի իրականացումը.
function each(arr, callback) {
let result = [];
for (let elem of arr) {
result.push( callback(elem) ); // կանչում ենք կոլբեք ֆունկցիան
}
return result;
}
Մեր each ֆունկցիան ունիվերսալ է:
Սա նշանակում է, որ մենք կարող ենք դրան փոխանցել
տարբեր կոլբեքներ՝ կատարելով տարբեր գործողություններ
զանգվածների վրա: Այս դեպքում մեր ֆունկցիայի կոդը կմնա
անփոփոխ – կփոխվեն միայն
փոխանցվող կոլբեքները:
Օրինակի համար եկեք մեր ֆունկցիայի միջոցով քառակուսի բարձրացնենք ինչ-որ զանգվածի յուրաքանչյուր տարրը: Դրա համար փոխանցենք որպես պարամետր համապատասխան կոլբեքը.
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 2;
});
console.log(result);
Այժմ եկեք զանգվածի տարրերը բարձրացնենք խորանարդ: Դրա համար որպես պարամետր փոխանցենք արդեն մի այլ կոլբեք, որը կկատարի այս գործողությունը.
let result = each([1, 2, 3, 4, 5], function(num) {
return num ** 3;
});
console.log(result);
Տրված է թվերի զանգված: Մեր ստեղծած
each ֆունկցիայի միջոցով կրկնապատկեք յուրաքանչյուր
տարր:
Տրված է տողերի զանգված: Մեր ստեղծած
each ֆունկցիայի միջոցով հակադարձեք յուրաքանչյուր տողի
սիմվոլները հակառակ հերթականությամբ:
Տրված է տողերի զանգված: Մեր ստեղծած
each ֆունկցիայի միջոցով դարձրեք մեծատառ
յուրաքանչյուր տողի առաջին սիմվոլը: