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
let yeniDizi = dizi.flatMap(fonksiyon);
Örnek
flatMap metodunu kullanarak
yeni bir dizi elde edelim:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Kodun çalıştırılmasının sonucu:
['a!', 'b!', 'c!']
Örnek
Sayılardan oluşan orijinal diziden yeni bir dizi elde edelim:
let 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:
[3, 4, 5, 6, 7]
Örnek
flatMap metodunu ilk iç içe geçme seviyesine
sahip bir diziye uygulamayı deneyelim:
let 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:
[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:
let 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:
[
'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:
let 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:
'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
flatmetodu