Callback функции во 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 направете го првиот симбол на секој стринг голема буква.