Функсияҳои callback дар JavaScript

Функсияҳоро метавон ҳамчун параметрҳо ба функцияҳои дигар гузоштан. Чунин функцияҳои параметрӣ callback (callback) номида мешаванд. Биёед коркард бо онҳоро дар мисол бубинем.

Фарз мекунем, ки мо мехоҳем функцияе созем, ки параметри якумаш массив гирад, ва параметри дуюмаш - коллбэк, ки ба ҳар як унсури массив татбиқ карда мешавад:

javascriptfunction each(arr, callback) {
  // дар ин ҷо баъзе код
}

Амолиёти функсияи худро нависед:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // функцияи callback-ро мехонем
  }
  
  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 аломати якуми ҳар як сатрро калимаи калон созед.