Javascript Array reduce()

Tanım

  • Oluşturulan diziyi yer alan her eleman üzerinde soldan sağa tarayarak işlem yapar ve tek bir değere düşürür.
  • Orjinal dizi üzerinde işlem yapmaz.
  • Parametre olarak callback fonksiyon alır.

 

Yazım Kuralı

array.reduce(function(accumulator, currentValue, currentIndex, arr), initialValue)

accumulator : Callback fonksiyonundan geri dönen değerleri toplar.

currentValue : Soldan sağa giderken şuanki dizi değeridir.

currentIndex (isteğe bağlı) : Dizide başlanmak istenen indis değeridir.

arr (isteğe bağlı) : Üzerinde işlem yapılacak dizidir.

initialValue : accumulator için başlangıç değeridir.

 

Giriş1 (Dizide bütün sayıları toplama)

const sayilar = [1, 2, 3, 4, 5, 6];

//dizide yer alan bütün değerleri toplayan fonksiyon
function degerleriTopla(accumulator,currentValue){
	return accumulator+currentValue;
}

//initialValue : 0 
console.log(sayilar.reduce(degerleriTopla,0));

 

Çıkış1

21

 

Giriş2 (Dizide bulunan 3 sayısının adetini bulma)

const sayilar = [1, 2, 3, 3, 5, 3, 0, 2, 3];

//dizide kaç adet 3 sayı var olduğunu bulan fonksiyon
function bul(accumulator,currentValue){
	return accumulator+(currentValue === 3 ? 1 : 0);
}

//initialValue : 0 
console.log(sayilar.reduce(bul,0));

 

Çıkış2

4