JavaScript-de çaýryş funksiýalary

Funksiýalar başga funksiýalara parametr hökmünde geçirip bolýar. Şeýle funksiýa-parametrler çaýryşlar (callback) diýlip atlandyrylýar. Geliň olaryň bilen işlemek mysalynda göreliň.

Göz öňüne getireliň, bir funksiýa ýasamak isleýäris, ilkinji parametri hökmünde massiw alar, ikinji parametri bolsa, massiwdäki her elemente ulanjak çaýryş bolsun:

javascriptfunction each(arr, callback) {
  // bu ýerde birnäçe kod
}

Funksiýamyzyň ýerine ýetirilişini ýazalyň:

javascriptfunction each(arr, callback) {
  let result = [];
  
  for (let elem of arr) {
    result.push( callback(elem) ); // çaýryş funksiýasyny çagyryň
  }
  
  return result;
}

each funksiýamyz - uniwersaldyr. Bu ýagdaýda biz oňa dürli çaýryşlary geçirip, massiwler bilen dürli amallary ýerine ýetirip bileris. Şol wagt funksiýamyzyň kody üýtgewsiz galar - diňe geçirilýän çaýryşlar üýtgäp biler.

Geliň mysal üçin, funksiýamyzyň kömegi bilen birnäçe massiwdäki her element kadalaşdyralyň. Munuň üçin degişli çaýryşy parametr hökmünde geçirýäris:

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

console.log(result);

Indi bolsa massiw elementlerini kuba şeýleşdireliň. Munuň üçin parametr hökmünde bu amaly ýerine ýetirýän başga bir çaýryşy geçirýäris:

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

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

Sanlar bilen massiw berlen. Biz ýasalan each funksiýamyzyň kömegi bilen her elementi iki esse köpeltiň.

Задание 2

Setirler bilen massiw berlen. Biz ýasalan each funksiýamyzyň kömegi bilen her setirdäki simwollary ters tertipde öwüriň.

Задание 3

Setirler bilen massiw berlen. Biz ýasalan each funksiýamyzyň kömegi bilen her setiriň ilkinji simwoly uly ediň.