Funkcje zwrotne (callback) w JavaScript

Funkcje można przekazywać jako parametry do innych funkcji. Takie funkcje-parametry nazywają się funkcjami zwrotnymi (callback). Spójrzmy na ich działanie na przykładzie.

Załóżmy, że chcemy stworzyć funkcję, która pierwszym parametrem będzie przyjmować tablicę, a drugim - funkcję zwrotną, która będzie aplikowana do każdego elementu tablicy:

javascriptfunction each(arr, callback) {
  // tutaj jakiś kod
}

Napiszmy implementację naszej funkcji:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // wywołujemy funkcję zwrotną
  }
  
  return result;
}

Nasza funkcja each jest uniwersalna. Oznacza to, że możemy przekazywać do niej różne funkcje zwrotne, wykonując różne operacje na tablicach. Przy tym kod naszej funkcji pozostanie niezmieniony - zmieniać się będą tylko przekazywane funkcje zwrotne.

Spójrzmy dla przykładu, jak za pomocą naszej funkcji podnieść do kwadratu każdy element jakiejś tablicy. W tym celu przekażemy odpowiednią funkcję zwrotną jako parametr:

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

console.log(result);

A teraz podnieśmy elementy tablicy do sześcianu. W tym celu jako parametr przekażemy już inną funkcję zwrotną, wykonującą tę operację:

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

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

Dana jest tablica z liczbami. Za pomocą stworzonej przez nas funkcji each zwiększ każdy element dwukrotnie.

Задание 2

Dana jest tablica z ciągami znaków. Za pomocą stworzonej przez nas funkcji each odwróć znaki każdego ciągu w odwrotnej kolejności.

Задание 3

Dana jest tablica z ciągami znaków. Za pomocą stworzonej przez nas funkcji each zrób wielką pierwszą literę każdego ciągu.