Callback funkcie v JavaScripte

Funkcie je možné odovzdávať ako parametre do iných funkcií. Takéto funkcie-parametre sa nazývajú kolbeky (callback). Pozrime sa na ich prácu na príklade.

Povedzme, že chceme vytvoriť funkciu, ktorá prvým parametrom bude prijímať pole, a druhým - kolbek, ktorý bude aplikovať na každý prvok pola:

javascriptfunction each(arr, callback) {
  // tu nejaký kód
}

Napíšme implementáciu našej funkcie:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // voláme funkciu-kolbek
  }
  
  return result;
}

Naša funkcia each - je univerzálna. To znamená, že do nej môžeme odovzdávať rôzne kolbeky, vykonávajúc rôzne operácie s poliami. Pritom kód našej funkcie zostane nezmenený - budú sa meniť len odovzdávané kolbeky.

Skúsme napríklad pomocou našej funkcie umocniť na druhú každý prvok nejakého poľa. Na to odovzdajme ako parameter príslušný kolbek:

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

console.log(result);

A teraz umocnime prvky poľa na tretiu. Na to ako parameter odovzdajme už iný kolbek, vykonávajúci túto operáciu:

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

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

Dané pole s číslami. Pomocou vytvorenej funkcie each zväčšite každý prvok dva krát.

Задание 2

Dané pole s reťazcami. Pomocou vytvorenej funkcie each otočte znaky každého reťazca v opačnom poradí.

Задание 3

Dané pole s reťazcami. Pomocou vytvorenej funkcie each urobte veľkým prvý znak každého reťazca.