Atgalinio iškvietimo funkcijos JavaScript

Funkcijas galima perduoti kaip parametrus kitoms funkcijoms. Tokios funkcijos-parametrai vadinamos atgalinio iškvietimo funkcijomis (callback). Pažiūrėkime jų veikimą pavyzdžiu.

Tarkime, norime sukurti funkciją, kuri pirmuoju parametru priims masyvą, o antruoju - atgalinio iškvietimo funkciją, kuri bus taikoma kiekvienam masyvo elementui:

javascriptfunction each(arr, callback) {
  // čia kažkoks kodas
}

Parašykime mūsų funkcijos realizaciją:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // iškviečiame atgalinio iškvietimo funkciją
  }
  
  return result;
}

Mūsų funkcija each - universali. Tai reiškia, kad galime perduoti jai įvairias atgalinio iškvietimo funkcijas, atlikdami skirtingus veiksmus su masyvais. Tuo pačiu mūsų funkcijos kodas išliks nepakitęs - keistis tik perduodamos atgalinio iškvietimo funkcijos.

Pavyzdžiui, naudodami mūsų funkciją pakelkime kvadratu kiekvieną elementą kažkokio masyvo. Tam perduosime kaip parametrą atitinkamą atgalinio iškvietimo funkciją:

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

console.log(result);

O dabar pakelkime masyvo elementus kubu. Tam kaip parametrą perduosime jau kitą atgalinio iškvietimo funkciją, atliekančią šią operaciją:

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

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

Duotas masyvas su skaičiais. Naudodamiesi mūsų sukurtąja funkcija each, padidinkite kiekvieną elementą dvigubai.

Задание 2

Duotas masyvas su eilutėmis. Naudodamiesi mūsų sukurtąja funkcija each, apverskite kiekvienos eilutės simbolius atvirkštine tvarka.

Задание 3

Duotas masyvas su eilutėmis. Naudodamiesi mūsų sukurtąja funkcija each, padarykite didžiąja raide pirmąjį kiekvienos eilutės simbolį.