JavaScript Dersleri

JavaScript’te reduce() Metodu

eminbasbayan

eminbasbayan

4 dk okuma
JavaScript’te reduce() Metodu
🔍 Büyütmek için tıklayın

Programlamada bazı durumlarda elimizdeki birden fazla veriyi işleyip, tek bir sonuca ulaşmamız gerekir. Örneğin bir alışveriş sepetindeki ürünlerin toplam fiyatını bulmak, bir sınavda alınan en yüksek puanı belirlemek ya da bir metindeki en uzun kelimeyi seçmek gibi işlemler buna örnektir. JavaScript’te bu tür işlemler için kullanılan en etkili araçlardan biri reduce() metodudur.

Bu yazıda reduce() metodunun mantığını, nasıl çalıştığını ve farklı amaçlarla nasıl kullanılabileceğini, lise düzeyinde anlayabileceğiniz sade bir dille açıklayacağız.

Reduce Nedir?

reduce(), bir dizi üzerinde çalışarak tüm elemanları belirli bir kurala göre işleyip, tek bir değer üretir. Bu değer bir sayı, bir nesne, bir dize (string) veya başka bir veri türü olabilir. map() ya da filter() gibi metodlar yeni diziler oluştururken, reduce() yalnızca bir tane sonuç üretir.

Reduce’ın Temel Yapısı

reduce() metodu şu yapıya sahiptir:

dizi.reduce(function (biriken, simdiki) { // işlem return yeniBiriken; }, baslangicDegeri);
  • biriken (accumulator): Önceki işlemlerden gelen sonuç. Her adımda güncellenir.
  • simdiki (current): O an dizide işlem yapılan eleman.
  • başlangıç değeri: (isteğe bağlıdır) Accumulator’un başta alacağı değeri belirler.

Örnek 1: Sayıların Toplamını Bulmak

Aşağıdaki örnekte, bir dizideki tüm sayıların toplamını buluyoruz.

const notlar = [60, 75, 80, 90]; const toplam = notlar.reduce(function (biriken, simdiki) { return biriken + simdiki; }, 0); console.log(toplam); // 305

Bu örnekte biriken, her adımda toplamı taşıyor. İlk değeri 0 olarak belirledik. Ardından sırasıyla tüm elemanları ekledik.

Örnek 2: En Küçük Sayıyı Bulmak

Bir dizideki en küçük sayıyı bulmak için reduce()’ü şu şekilde kullanabiliriz:

const dereceler = [12, 5, -2, 8, 3]; const enDusuk = dereceler.reduce(function (biriken, simdiki) { if (simdiki < biriken) { return simdiki; } else { return biriken; } }); console.log(enDusuk); // -2

Burada amaç toplam yapmak değil, her elemanı bir önceki ile karşılaştırarak en küçüğü seçmek.

Örnek 3: Metinler Arasından En Uzun Kelimeyi Bulmak

reduce() sadece sayılarla değil, metinlerle de çalışabilir. Örneğin, bir dizideki en uzun kelimeyi bulalım:

const kelimeler = ["masa", "kitaplık", "kalem", "bilgisayar", "defter"]; const enUzun = kelimeler.reduce(function (enUzun, simdiki) { if (simdiki.length > enUzun.length) { return simdiki; } else { return enUzun; } }); console.log(enUzun); // bilgisayar

Her adımda, en uzun olan kelimeyi güncelliyoruz.

Örnek 4: Nesnelerle Kullanım – En Yüksek Puanlı Öğrenci

Daha karmaşık verilerle, yani nesnelerle de reduce() kullanılabilir. Aşağıda öğrencilerin notlarını içeren bir nesne dizisi var ve en yüksek notu alan öğrenciyi bulmak istiyoruz:

const ogrenciler = [ { ad: "Ayşe", not: 78 }, { ad: "Burak", not: 92 }, { ad: "Can", not: 85 }, { ad: "Deniz", not: 95 } ]; const enBasarili = ogrenciler.reduce(function (biriken, simdiki) { if (simdiki.not > biriken.not) { return simdiki; } else { return biriken; } }); console.log(enBasarili); // { ad: "Deniz", not: 95 }

Burada dikkat edilmesi gereken nokta, doğrudan sayıları değil, nesne içindeki bir özelliği (örneğin not) karşılaştırmamız gerektiği.

Örnek 5: Başlangıç Değeri Kullanmak

reduce() metoduna ikinci bir parametre vererek başlangıç değerini kendimiz belirleyebiliriz. Örneğin:

const sayilar = [5, 10, 15]; const toplam = sayilar.reduce(function (biriken, simdiki) { return biriken + simdiki; }, 100); console.log(toplam); // 130

Burada toplam, sıfırdan değil 100’den başlıyor. Bu tür durumlar bazen önceden eldeki bir değeri dahil etmek için kullanılır.

Sonuç

reduce() metodu, ilk başta biraz kafa karıştırıcı gibi görünebilir. Ancak mantığı anlaşıldığında oldukça güçlü ve esnek bir araçtır. Bu metot sayesinde bir diziden tek bir sonuç üretmek kolaylaşır. Toplama, en büyük ya da en küçük değeri bulma, nesnelerle çalışma gibi pek çok farklı kullanım alanı vardır.

En önemlisi, reduce() kullanırken mantığı adım adım düşünmek:

“Bu adımdaki değerle, şimdiye kadar elde ettiğim değeri birleştirip ne yapmalıyım?”

Bu düşünce şekliyle reduce() hem anlaşılır hem de çok işe yarayan bir yöntem haline gelir.

Etiketler

#Eğitimler#JavaScript Dersleri

İlgili Yazılar

Bu konuyla ilgili diğer yazılarımızı da inceleyebilirsiniz

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?
JavaScript Dersleri

Web Geliştirmede Neden JavaScript'e İhtiyacımız Var?

Web geliştirme, temel olarak üç ana yapı taşı üzerine kuruludur: **HTML, CSS ve JavaScript**. Bu üçlüden **HTML**, sayfanın iskeletini oluşturur, **CSS**, tasarımı ve görsel düzenlemeleri yapar

2 dk
JavaScript'e Giriş: JavaScript Nedir?
JavaScript Dersleri

JavaScript'e Giriş: JavaScript Nedir?

Web geliştirme yolculuğunuzda büyük bir adım atıyorsunuz! HTML ve CSS ile statik web sayfaları oluşturmayı öğrendiniz, ancak şimdi JavaScript ile sayfanıza hareket ve etkileşim katmanını eklemeye hazırsınız. JavaScript, web sayfalarını dinamik hale getiren ve kullanıcı etkileşimlerini yöneten

3 dk
JavaScript Değişkenler (Variables) Nedir?
JavaScript Dersleri

JavaScript Değişkenler (Variables) Nedir?

JavaScript, web geliştirme dünyasının en önemli dillerinden biridir. Dinamik web siteleri, interaktif uygulamalar, oyunlar ve animasyonlar gibi birçok alanda kullanılır. Ancak, bu tür gelişmiş uygulamalar oluşturabilmek için önce JavaScript'in temellerini anlamak gerekir. Bu

4 dk
JavaScript İlkel (Primitive) Veri Tipleri
JavaScript Dersleri

JavaScript İlkel (Primitive) Veri Tipleri

JavaScript, modern web geliştirmede vazgeçilmez bir programlama dilidir. Web sitelerini daha dinamik hale getirmek, etkileşim eklemek ve hatta oyunlar ve uygulamalar geliştirmek için kullanılır. Ancak, bu eğlenceli ve güçlü özelliklere ulaşmadan önce, JavaScript'in temellerin

4 dk
JavaScript'te Sayılar ve Matematiksel Operatörler
JavaScript Dersleri

JavaScript'te Sayılar ve Matematiksel Operatörler

JavaScript, modern web geliştirmede en yaygın kullanılan programlama dillerinden biridir. Bu dilde çalışırken sayılarla sıkça işlem yaparız. İster bir hesap makinesi uygulaması geliştiriyor olun, ister bir oyundaki puan sistemini kodluyor olun, sayılar kaçınılmaz bir parçadır. JavaScri

4 dk
JavaScript'te Boolean Veri Tipi
JavaScript Dersleri

JavaScript'te Boolean Veri Tipi

JavaScript'ı öğrenmeye yeni başlayanlar için veri tipleri oldukça önemlidir. Bu yazıda, en temel veri tiplerinden biri olan **Boolean (mantıksal) değerleri** inceleyeceğiz. Boolean değerleri, programlamada sıklıkla kullanılan ve kodlarımızın man

3 dk