Tüm blog yazıları

JavaScript’te map() Metodu

Programlamada sıkça karşılaştığımız durumlardan biri, elimizdeki verileri farklı bir forma sokmak istememizdir. JavaScript’te dizi (array) ile çalışırken, bir dizinin her bir elemanını alıp değiştirmek, üzerinde işlem yapmak ve bunlardan yeni bir dizi oluşturmak oldukça yaygın bir ihtiyaçtır.

eminbasbayan4 dk okuma
JavaScript’te map() Metodu

Programlamada sıkça karşılaştığımız durumlardan biri, elimizdeki verileri farklı bir forma sokmak istememizdir. JavaScript’te dizi (array) ile çalışırken, bir dizinin her bir elemanını alıp değiştirmek, üzerinde işlem yapmak ve bunlardan yeni bir dizi oluşturmak oldukça yaygın bir ihtiyaçtır. Bu gibi durumlar için JavaScript bize çok kullanışlı bir araç sunar: map() metodu.

Bu makalede, map() metodunun nasıl çalıştığını, ne işe yaradığını ve neden tercih edilmesi gerektiğini sade ve anlaşılır bir dille açıklayacağız. Ayrıca farklı örnekler üzerinden konuyu pekiştireceğiz.

map() Metodu Nedir?

map() metodu, bir dizi üzerinde çalışır ve her bir eleman için verilen bir fonksiyonu çalıştırarak yeni bir dizi oluşturur. Bu fonksiyonun her çalışmasından dönen değerler, yeni dizinin elemanlarını oluşturur.

Önemli bir detay: map() metodu orijinal diziyi değiştirmez. Yani üzerinde çalıştığı dizi olduğu gibi kalır, sadece dönüş değerlerinden oluşan yeni bir dizi üretir.

Kullanım Şekli

jsx
const yeniDizi = orijinalDizi.map(function(eleman) {
  return islenmisDeger;
});

Veya kısa yazım (arrow function) ile:

jsx
const yeniDizi = orijinalDizi.map(eleman => islenmisDeger);

Basit Bir Örnek: Sıcaklık Dönüştürme

Diyelim elimizde santigrat cinsinden sıcaklıkları tutan bir dizi var:

jsx
const santigratlar = [0, 20, 30, 100];

Bunları Fahrenheit’a çevirmek istiyoruz. Formülümüz:

Fahrenheit = (Santigrat × 9/5) + 32

İşte map() ile bunu kolayca yapabiliriz:

jsx
const fahrenheitlar = santigratlar.map(sicaklik => (sicaklik * 9/5) + 32);

Sonuç:

jsx
console.log(fahrenheitlar); // [32, 68, 86, 212]

Orijinal santigratlar dizisi değişmedi, ama her eleman dönüştürülerek yeni bir dizi üretildi.

Metin Üzerinde Kullanım: Öğrenci İsimlerini Biçimlendirme

Elimizde öğrencilerin küçük harflerle yazılmış isimleri olsun:

jsx
const isimler = ["ayşe", "mehmet", "cemre", "burak"];

Tüm isimlerin ilk harfini büyük yapmak istiyoruz. Bunu map() ile şu şekilde yapabiliriz:

jsx
const duzenliIsimler = isimler.map(isim =>
  isim.charAt(0).toUpperCase() + isim.slice(1)
);

Sonuç:

jsx
console.log(duzenliIsimler); // ["Ayşe", "Mehmet", "Cemre", "Burak"]

Her bir isme aynı işlem uygulandı ve dönüştürülmüş değerlerden yeni bir liste elde edildi.

Nesne Dizileriyle Kullanım: Ürün İsimlerini Alma

Gerçek hayatta genellikle diziler sadece sayı veya metin içermez. Genellikle dizi içindeki her eleman bir nesnedir. Örneğin:

jsx
const urunler = [
  { isim: "Laptop", fiyat: 15000 },
  { isim: "Telefon", fiyat: 10000 },
  { isim: "Tablet", fiyat: 8000 }
];

Sadece ürün isimlerinden oluşan bir liste yapmak istiyoruz:

jsx
const urunIsimleri = urunler.map(urun => urun.isim);

Sonuç:

jsx
console.log(urunIsimleri); // ["Laptop", "Telefon", "Tablet"]

Yani her nesne içinden sadece isim alanı alınıp yeni bir dizi oluşturuldu.

Başka Bir Nesne Örneği: Fiyatlara KDV Ekleme

Elimizde yine bir ürün listesi olsun:

jsx
const sepet = [
  { ad: "Kitap", fiyat: 120 },
  { ad: "Defter", fiyat: 30 },
  { ad: "Kalem", fiyat: 15 }
];

Her ürünün fiyatına %18 KDV ekleyip, yeni fiyatları içeren bir dizi oluşturalım:

jsx
const kdvliFiyatlar = sepet.map(urun => ({
  ad: urun.ad,
  fiyat: (urun.fiyat * 1.18).toFixed(2)
}));

Sonuç:

jsx
console.log(kdvliFiyatlar);
/*
[
  { ad: "Kitap", fiyat: "141.60" },
  { ad: "Defter", fiyat: "35.40" },
  { ad: "Kalem", fiyat: "17.70" }
]
*/

Hem veri dönüştürüldü, hem de orijinal yapıya zarar verilmeden yeni bir yapı oluşturuldu.

map() ile forEach Arasındaki Fark

Bazı öğrenciler forEach ile map() arasındaki farkı karıştırabiliyor. Şöyle düşün:

  • forEach → sadece işlem yapar ama sonuçları geri döndürmez.
  • map → her elemanı işler ve geri dönenleri bir dizide toplar.

Örnekle açıklayalım:

jsx
const sayilar = [1, 2, 3];

const sonuc1 = sayilar.forEach(sayi => sayi * 2);
console.log(sonuc1); // undefined

const sonuc2 = sayilar.map(sayi => sayi * 2);
console.log(sonuc2); // [2, 4, 6]

forEach ile işlem yapılır ama sonuç alınmaz. map ise hem işlem yapar hem sonuç üretir.

Nerelerde Kullanılır?

  • Bir dizideki her elemanı farklı bir forma çevirmek istiyorsan,
  • Dizi içinden sadece belirli alanları almak istiyorsan,
  • Sayısal dönüşümler, metin biçimlendirme, nesne güncelleme gibi işlemler yapacaksan

map() senin en büyük yardımcın olacaktır.

Sonuç

JavaScript’te map() metodu, dizi elemanlarını dönüştürmek için kullanılan güçlü ve pratik bir yöntemdir. Geliştirici olarak kodunu sade, okunabilir ve işlevsel hale getirmen için çok önemli bir araçtır. Özellikle büyük veri listeleriyle çalışırken, tek satırlık map() ifadeleriyle çok karmaşık işlemleri kolayca gerçekleştirebilirsin.

Yeter ki şu temel soruyu unutma:

“Bu listedeki her elemanı işleyip yeni bir liste yapmak istiyor muyum?”

Cevabın evetse, çözümün: map().

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele