Callback funkcije v JavaScriptu

Funkcije lahko podamo kot parametre drugim funkcijam. Takšne funkcije-parametri se imenujejo klicne funkcije (callback). Poglejmo si delo z njimi na primeru.

Recimo, da želimo narediti funkcijo, ki bo prvi parameter sprejela polje, drugi pa - klicno funkcijo, ki jo bo aplicirala na vsak element polja:

javascriptfunction each(arr, callback) {
  // tukaj je nek koda
}

Napišimo implementacijo naše funkcije:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // kličemo klicno funkcijo
  }
  
  return result;
}

Naša funkcija each je univerzalna. To pomeni, da ji lahko podajamo različne klicne funkcije in izvajamo različne operacije nad polji. Pri tem koda naše funkcije ostane nespremenjena - spreminjali se bodo le podane klicne funkcije.

Za primer s pomočjo naše funkcije kvadrirajmo vsak element nekega polja. Za to podajmo kot parameter ustrezno klicno funkcijo:

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

console.log(result);

Zdaj pa elemente polja povzdignimo v kub. Za to kot parameter podajmo drugo klicno funkcijo, ki izvaja to operacijo:

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

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

Podano je polje s števili. S pomočjo ustvarjene funkcije each podvojite vsak element.

Задание 2

Podano je polje z nizi. S pomočjo ustvarjene funkcije each obrnite znake vsakega niza v obratnem vrstnem redu.

Задание 3

Podano je polje z nizi. S pomočjo ustvarjene funkcije each naredite prvo črko vsakega niza veliko.