ფუნქციები-კოლბეკები 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 დახმარებით გახადეთ დიდი
პირველი სიმბოლო ყოველი სტრიქონის.