Callback-funktiot JavaScriptissä

Funktioita voidaan välittää parametreina muihin funktioihin. Tällaisia funktioparametreja kutsutaan callback-funktioiksi (callback). Katsotaan niiden toimintaa esimerkin avulla.

Oletetaan, että haluamme tehdä funktion, joka ensimmäisenä parametrina vastaanottaa taulukon ja toisena - callback-funktion, jota sovelletaan jokaisen taulukon alkioon:

javascriptfunction each(arr, callback) {
  // tässä on jotain koodia
}

Kirjoitetaan funktiomme toteutus:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // kutsutaan callback-funktiota
  }
  
  return result;
}

Funktiomme each on yleiskäyttöinen. Tämä tarkoittaa, että voimme välittää siihen erilaisia callback-funktioita suorittaen erilaisia operaatioita taulukoille. Samalla funktiomme koodi pysyy muuttumattomana - vain välitettävät callback-funktiot muuttuvat.

Esimerkkinä käytetään funktiotamme nostaaksemme neliöön jokaisen alkion jossain taulukossa. Välitämme tätä varten vastaavan callback-funktion parametrina:

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

console.log(result);

Nyt nostetaan taulukon alkiot kuutioon. Tätä varten parametrina välitetään toinen callback-funktio, joka suorittaa tämän operaation:

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

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

Annettu taulukko numeroita. Luomamme funktion each avulla kaksinkertaista jokainen alkio.

Задание 2

Annettu taulukko merkkijonoja. Luomamme funktion each avulla käännä kunkin merkkijonon merkit väärinpäin.

Задание 3

Annettu taulukko merkkijonoja. Luomamme funktion each avulla muuta kunkin merkkijonon ensimmäinen kirjain isoksi.