Функцыі-коллбэкі ў JavaScript

Функцыі можна перадаваць параметрамі у іншыя функцыі. Такія функцыі-параметры называюцца коллбэкамі (callback). Давайце паглядзім працу з імі на прыкладзе.

Хай мы хочам зрабіць функцыю, якая першым параметрам будзе прымаць масіў, а другім - коллбэк, які будзе ўжываць да кожнага элемента масіва:

javascriptfunction each(arr, callback) {
  // тут які-небудзь код
}

Напішам рэалізацыю нашай функцыі:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // выклікаем функцыю-коллбэк
  }
  
  return result;
}

Наша функцыя each - універсальная. Гэта значыць, што мы можам перадаваць у яе розныя коллбэкі, выконваючы розныя аперацыі над масівамі. Пры гэтым код нашай функцыі застанецца нязменным - будуць мяняцца толькі якія перадаюцца коллбэкі.

Давайце для прыкладу з дапамогай нашай функцыі узведзім у квадрат кожны элемент якога-небудзь масіва. Для гэтага перададзім параметрам адпаведны коллбэк:

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

console.log(result);

А цяпер узведзім элементы масіва ў куб. Для гэтага ў якасці параметра перададзім ужо іншы коллбэк, які выконвае гэтую аперацыю:

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

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

Дадзены масіў з лікамі. З дапамогай створанай намі функцыі each павялічце кожны элемент у два разы.

Задание 2

Дадзены масіў з радкамі. З дапамогай створанай намі функцыі each перавярніце сімвалы кожнага радка ў адваротным парадку.

Задание 3

Дадзены масіў з радкамі. З дапамогай створанай намі функцыі each зрабіце загалоўнай першы сімвал кожнага радка.