Metode flatMap
Metode flatMap mengembalikan
array baru, yang dibuat setelah
setiap elemen array asli
diterapkan callback,
yang ditentukan dalam parameter metode.
Pada pandangan pertama metode flatMap
mirip dengan metode map, tetapi perbedaan utamanya
adalah bahwa ia selalu mengembalikan array satu dimensi.
Sintaks
let newArray = array.flatMap(fungsi);
Contoh
Mari kita dapatkan array baru,
menggunakan metode flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Hasil eksekusi kode:
['a!', 'b!', 'c!']
Contoh
Mari kita dapatkan array baru dari array asli, yang terdiri dari angka:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Hasil eksekusi kode:
[3, 4, 5, 6, 7]
Contoh
Mari kita coba terapkan metode
flatMap ke array dengan
tingkat bersarang pertama:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Setelah mengeksekusi kode kita akan melihat bahwa kondisi fungsi diterapkan ke sub-array, menganggapnya sebagai satu elemen. Oleh karena itu, pemanggilan metode ini pada array bersarang tidak masuk akal:
[3, 4, 5, '4,52']
Contoh
Jika kita ingin tidak repot dengan tingkat nestedness,
tapi menggabungkan seluruh array, maka kita gunakan parameter Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Hasil eksekusi kode:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Contoh
Mari kita terapkan dua metode ke array:
flatMap dan map, dan dalam parameter kedua metode
akan ditentukan fungsi yang membuat array dua dimensi:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('metode map', res1);
console.log('metode flatMap', res2);
Hasil eksekusi kode:
'metode map' [[3], [6], [9], [12], [15], [18]]
'metode flatMap' [3, 6, 9, 12, 15, 18]
Lihat juga
-
metode
flat,
yang mengembalikan array dari sub-array