CodeBlanks Logo Icon CodeBlanks

map ile dönüştürme

JavaScript kursu · Başlangıç · Ders 65/133

map ile dizideki her elemanı dönüştürüp yeni bir dizi oluşturmayı öğrenirsin.

map ile dönüştürme

map metodu, dizideki her elemanı bir callback işlevinden geçirip yeni bir dizi döndürür. Orijinal dizi değişmez; bunun yerine her elemanın dönüştürülmüş haliyle aynı uzunlukta taze bir dizi oluşur.

Örneğin bir fiyat listesindeki her sayıyı ikiyle çarpmak istersen map tam işine yarar. Callback üç parametre alabilir: eleman, index ve dizi. Çoğunlukla yalnızca eleman kullanılır.

map orijinal diziye dokunmaz

map saf bir işlevdir: çağırdığın diziye asla yazmaz. Dönüştürülmüş değerleri yeni bir dizi olarak alırsın, eski dizi ise olduğu gibi kalır.

Bu yüzden map'i değişken atamadan kullanmak bir işe yaramaz; sonucu mutlaka bir değişkene ya da başka bir çağrıya vermen gerekir. Orijinali korumak istediğinde bu davranış işine yarar.

Uygulama Fiyatları KDV'li fiyata dönüştür

prices dizisindeki her fiyatı %18 KDV ile çarpıp withTax adlı yeni diziye koy. Sonucu konsola yazdır.

Örnek çözümü göster
const prices = [100, 250, 75];
// fiyatları KDV ile (%18) dönüştür
const withTax = prices.map(price => price * 1.18);
console.log(withTax);

Uygulama İsimleri büyük harfe çevir

names dizisindeki her ismi büyük harfe çevirip shouted dizisine koy. Sonucu konsola yazdır.

Örnek çözümü göster
const names = ["ayse", "mehmet"];
// isimleri büyük harfe çevir
const shouted = names.map(name => name.toUpperCase());
console.log(shouted);

Kendini test et

  1. const squares = [1,2,3].map(n => n*n); işleminden sonra squares ne olur?

    const squares = [1, 2, 3].map(n => n * n);
    • [1, 4, 9]
    • undefined
    • [1, 2, 3]
    • 3
    Cevabı göster

    [1, 4, 9] — Doğru. map her elemanı callback'ten geçirip [1, 4, 9] yeni dizisini döndürür.

  2. her fiyatın %18 KDV'li halini üret

    const prices = [100, 250];
    const withTax = prices.map(price => ____);
    console.log(withTax);
    Cevabı göster
    const prices = [100, 250];
    const withTax = prices.map(price => price * 1.18);
    console.log(withTax);

Başlangıç bölümündeki tüm dersler