flatMap Metodu

flatMap metodu, orijinal dizinin her elemanına metod parametresinde belirtilen geri çağırma fonksiyonu uygulandıktan sonra oluşturulan yeni bir dizi döndürür. İlk bakışta flatMap metodu map metoduna benzer, ancak temel farkı her zaman tek boyutlu bir dizi döndürmesidir.

Sözdizimi

javascriptlet yeniDizi = dizi.flatMap(fonksiyon);

Örnek

flatMap metodunu kullanarak yeni bir dizi elde edelim:

javascriptlet arr = ['a', 'b', 'c'];

let res = arr.flatMap(function(elem) {
  return elem + '!';
});

console.log(res);

Kodun çalıştırılmasının sonucu:

javascript['a!', 'b!', 'c!']

Örnek

Sayılardan oluşan orijinal diziden yeni bir dizi elde edelim:

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

let res = arr.flatMap(function(elem) {
  return elem + 2;
});

console.log(res);

Kodun çalıştırılmasının sonucu:

javascript[3, 4, 5, 6, 7]

Örnek

flatMap metodunu ilk iç içe geçme seviyesine sahip bir diziye uygulamayı deneyelim:

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

let res = arr.flatMap(function getElem(elem){
  return elem + 2;
});

console.log(res);

Kodu çalıştırdıktan sonra fonksiyon koşullarının alt diziye onu tek bir eleman olarak sayarak uygulandığını göreceğiz. Bu nedenle, bu metodun iç içe geçmiş dizilerde çağrılması anlamlı değildir:

javascript[3, 4, 5, '4,52']

Örnek

İç içe geçme seviyesiyle uğraşmak istemiyorsak ve tüm diziyi birleştirmek istiyorsak, Infinity parametresini kullanırız:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];

let res = arr.flatMap(Infinity);

console.log(res);

Kodun çalıştırılmasının sonucu:

javascript[
  'a', 'b', 'c',
  'd', 'e', 'f',
  'g', 'h', 'i'
]

Örnek

Bir diziye iki metot uygulayalım: flatMap ve map, ve her iki metodun parametresinde de diziyi iki boyutlu yapan bir fonksiyon belirtilecek:

javascriptlet arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);

console.log('map metodu', res1);
console.log('flatMap metodu', res2);

Kodun çalıştırılmasının sonucu:

javascript'map metodu' [[3], [6], [9], [12], [15], [18]]
'flatMap metodu' [3, 6, 9, 12, 15, 18]

Ayrıca Bakınız

  • alt dizilerden oluşan bir dizi döndüren
    flat metodu