Kaedah flatMap
Kaedah flatMap mengembalikan
tatasusunan baharu, dicipta selepas
setiap elemen tatasusunan asal
dikenakan kol balik,
yang dinyatakan dalam parameter kaedah.
Pada pandangan pertama kaedah flatMap
menyerupai kaedah map, tetapi perbezaan utamanya
ialah ia sentiasa mengembalikan tatasusunan satu dimensi.
Sintaks
let newArray = array.flatMap(fungsi);
Contoh
Mari dapatkan tatasusunan baharu,
menggunakan kaedah flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Keputusan pelaksanaan kod:
['a!', 'b!', 'c!']
Contoh
Mari dapatkan tatasusunan baharu daripada tatasusunan asal, yang terdiri daripada nombor:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Keputusan pelaksanaan kod:
[3, 4, 5, 6, 7]
Contoh
Mari cuba gunakan kaedah
flatMap pada tatasusunan dengan
aras bersarang pertama:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Selepas pelaksanaan kod kita akan lihat bahawa syarat fungsi telah digunakan pada sub-tatasusunan, menganggapnya sebagai satu elemen. Oleh itu, pemanggilan kaedah ini pada tatasusunan bersarang tidak masuk akal:
[3, 4, 5, '4,52']
Contoh
Jika kita tidak mahu bersusah payah dengan aras bersarang,
dan ingin menggabungkan keseluruhan tatasusunan, maka gunakan parameter Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Keputusan pelaksanaan kod:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Contoh
Mari gunakan dua kaedah pada tatasusunan:
flatMap dan map, dan dalam parameter kedua-dua kaedah
fungsi yang menjadikan tatasusunan dua dimensi akan dinyatakan:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('kaedah map', res1);
console.log('kaedah flatMap', res2);
Keputusan pelaksanaan kod:
'kaedah map' [[3], [6], [9], [12], [15], [18]]
'kaedah flatMap' [3, 6, 9, 12, 15, 18]
Lihat juga
-
kaedah
flat,
yang mengembalikan tatasusunan daripada sub-tatasusunan