DEV Community

Eray Kaya
Eray Kaya

Posted on

5 3

Javascript Reduce Metodu Nasıl Çalışır?

Herkese merhaba arkadaşlar. İlk yazımda etrafımda gördüğüm kadarıyla underrated olduğunu düşündüğüm reduce metodunu ele alacağım.

Underrated olduğunu düşünmemin sebebi, genelde herkes bu fonksiyonu array içindeki değerleri toplamak için falan kullanıyor fakat bu metod çok daha fazlasını yapabilecek bir metod.

Öncelikle eğer Array.prototype.reduce diye bir metodumuz olmasaydı bunun gibi çalışan bir metodu nasıl yazardık ile başlayalım:

Reduce fonksiyonu accumulator yapısında bir fonksiyondur yani üzerinde kullanılan veriyi biriktirerek tek bir değere indirgemeye çalışır.

2 parametre alır bunlardan biri callback fonksiyonu diğeri ilk değerdir. Eğer ilk değer varsa accumulator ona eşit başlar yoksa eğer reduce kullanılan arrayin ilk elemanına eşit başlar.

function fakeReduce() {
  function reduce(callback, initialValue) {
    let accumulator;
    let start = 0;

    if(initialValue) {
      accumulator = initialValue;
   } else {
     accumulator = this[0];
     start = 1;
   }

  }

Enter fullscreen mode Exit fullscreen mode

Esas kısıma gelecek olursak eğer, callback fonksiyonu 4 değer alır bunlar: accumulator, o anki değer, index
ve fonksiyonu kullandığımız array'dir. Her for iterasyonunda callback fonksiyonumuz tekrar çalışır ve return değerimiz accumulator'dır.


  function fakeReduce(callback, initialValue) {
    let accumulator;
    let start = 0;
   //this bu fonksiyonda üzerinde kullandığımız arrayi gösterir
    if(initialValue) {
      accumulator = initialValue;
   } else {
     accumulator = this[0];
     start = 1;
   }

   for (let i = start; i < this.length; i++) {
     accumulator = callback(accumulator, this[i], i, this);
   }

   return accumulator;
  }

Enter fullscreen mode Exit fullscreen mode

Şu anda fonksiyonumuzun eksiği, error yönetimi. Buna girersem konu dağılabilir o yüzden önemli olan reduce metodunun nasıl çalıştığını anlamak. Bu sebeple bu yazının çok da uzun olmaması adına reduce'u basit bir toplama işleminden ziyade üzerinde kullandığımız arrayle nasıl oynayabileceğimizi gösteren örnekler sunacağım.

Javascript'le ilgili herhangi bir konuda yazı gelmesini istiyorsanız yorumlarda belirtebilirsiniz.

Bir sonraki yazıda görüşmek üzere...

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more