Map Metodu

map metodu, bir dizinin her elemanı için belirtilen fonksiyonu uygulamayı sağlar. Bu metod orijinal diziyi değiştirmez, bunun yerine değiştirilmiş olanı döndürür.

Metod parametre olarak, dizinin her elemanı için çalıştırılacak fonksiyonu alır. Bu fonksiyonun return ile döndürdüğü değer, dizinin o elemanının yeni değeri olur (örneklere bakın).

Fonksiyona 3 parametre aktarılabilir. Bu parametreler mevcutsa (zorunlu değildir), birincisine otomatik olarak dizi elemanı, ikincisine dizideki numarası (indeks), üçüncüsüne ise dizinin kendisi gelir.

Sözdizimi

javascriptlet yeni dizi = dizi.map(function(eleman, indeks, dizi) {
  kod
  return değiştirilmiş eleman;
});

Örnek

Her elemanı, başlangıç dizisinin karşılık gelen elemanının iki katı olan bir dizi oluşturalım:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem) {
  return elem * 2;
});

console.log(res);

Kodun çalıştırılma sonucu:

javascript[2, 4, 6, 8, 10]

Örnek

Her elemanı şu şekilde elde edilen bir dizi oluşturalım - elemanın değeri, dizideki sıra numarası ile çarpılır:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, index) {
  return elem * index;
});

console.log(res);

Kodun çalıştırılma sonucu:

javascript[0, 2, 6, 12, 20]

Örnek

Gerektiğinde üçüncü parametreye dizinin kendisi aktarılabilir:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.map(function(elem, index, arr) {
  burada arr dizisine erişilebilir olacak
});

Örnek

map metodu çok boyutlu dizileri gezmek için de kullanılabilir. Örneğin, şu şekilde bir dizi verilmiş olsun:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

Şimdi bu diziyi map ile gezelim ve elemanlarını konsola yazdıralım:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

let result = arr.map(function(elem) {
  console.log(elem);
});

Sonuç olarak console.log önce [1, 2, 3], sonra [4, 5, 6], sonra [7, 8, 9] yazdıracak.

Gördüğünüz gibi, elem değişkenine alt diziler geliyor. Şimdi her bir alt diziye map metodunu uygulayalım ve her bir elemanının karesini alalım:

javascriptlet arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];

let result = arr.map(function(elem) {
  return elem.map(function(num) {
    return num * num;
  });
});

console.log(result);

Ayrıca Bakınız

  • metod forEach,
    bir dizinin her elemanı için fonksiyon uygular
  • metod filter,
    bir dizinin elemanlarını filtrelemeyi sağlar
  • metodlar some ve every,
    dizi kontrolü gerçekleştirir
  • metodlar reduce ve reduceRight,
    bir diziyi tek bir değere indirger