JavaScript-da o'q funktsiyalaridan foydalanish

O'q funktsiyalari callback (qayta chaqiruv) lar sifatida alohida afzallikga ega. Keling, bunday holatda kod qanchalik soddalashishini bir misolda ko'ramiz. Misol uchun bizda quyidagi filter funktsiyasi mavjud deb faraz qilaylik:

javascriptfunction filter(arr, callback) {
  let res = [];

  for (let elem of arr) {
    if ( callback(elem) === true ) {
      res.push(elem);
    }
  }
  
  return res;
}

Keling, bu funktsiyani callback (qayta chaqiruv) berib chaqiramiz:

javascriptlet result = filter([1, 2, 3, 4, 5], function(elem) {
  if (elem % 2 === 0) {
    return true;
  } else {
    return false;
  }
});

Keling, endi bizning funktsiyamizni soddalashtiraylik. Avvalo, if tuzilmasidan xalos bo'laylik va shartni shunchaki === operatori orqali yozamiz:

javascriptlet result = filter([1, 2, 3, 4, 5], function(elem) {
  return elem % 2 == 0;
});

Keling, endi oddiy funktsiyani o'q funktsiyasiga almashtiramiz:

javascriptlet result = filter([1, 2, 3, 4, 5], elem => elem % 2 == 0);
Задание 1

Quyidagi callback (qayta chaqiruv) li funktsiya berilgan:

javascriptlet result = filter([1, 2, 3, 4, 5], function(elem) {
  if (elem > 0) {
    return true;
  } else {
    return false;
  }
});

Callback (qayta chaqiruv) ni o'q funktsiyasi orqali soddalashtiring.