ფუნქციები-კოლბეკები JavaScript-ში

ფუნქციების სხვა ფუნქციებში პარამეტრების სახით გადაცემა შესაძლებელია. ასეთ ფუნქცია-პარამეტრებს ეძახიან კოლბეკებს (callback). მოდით შევხედოთ მათთან მუშაობის მაგალითს.

დავუშვათ, გვსურს შევქმნათ ფუნქცია, რომელიც პირველ პარამეტრად მიიღებს მასივს, ხოლო მეორედ - კოლბეკს, რომელიც ყოველ ელემენტს მასივის გამოიყენებს:

javascriptfunction each(arr, callback) {
  // აქ რაღაც კოდი
}

დავწეროთ ჩვენი ფუნქციის რეალიზაცია:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // ვიძახებთ ფუნქცია-კოლბეკს
  }
  
  return result;
}

ჩვენი ფუნქცია each - უნივერსალურია. ეს ნიშნავს, რომ ჩვენ შეგვიძლია მასში გადავცეთ სხვადასხვა კოლბეკები, სხვადასხვა ოპერაციების შესრულება მასივებზე. ამ შემთხვევაში ჩვენი ფუნქციის კოდი უცვლელი დარჩება - შეიცვლება მხოლოდ გადაცემული კოლბეკები.

მაგალითისთვის, ჩვენი ფუნქციის დახმარებით ავყათ კვადრატში რაიმე მასივის თითოეული ელემენტი. ამისთვის გადავცეთ პარამეტრის სახით შესაბამისი კოლბეკი:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 2;
});

console.log(result);

ახლა კი ავყათ მასივის ელემენტები კუბში. ამისთვის პარამეტრის სახით გადავცეთ უკვე სხვა კოლბეკი, რომელიც ამ ოპერაციას ასრულებს:

javascriptlet result = each([1, 2, 3, 4, 5], function(num) {
  return num ** 3;
});

console.log(result);
Задание 1

მოცემულია მასივი რიცხვებით. ჩვენი შექმნილი ფუნქციის each დახმარებით გაზარდეთ ყოველი ელემენტი ორჯერ.

Задание 2

მოცემულია მასივი სტრიქონებით. ჩვენი შექმნილი ფუნქციის each დახმარებით შეაბრუნეთ სიმბოლოები ყოველი სტრიქონის უკუთანმიმდევრობით.

Задание 3

მოცემულია მასივი სტრიქონებით. ჩვენი შექმნილი ფუნქციის each დახმარებით გახადეთ დიდი პირველი სიმბოლო ყოველი სტრიქონის.