flatMap-metoden
Metoden flatMap returnerer
en ny array, opprettet etter at
en tilbakeringing
spesifisert i metodens parameter
ble brukt på hvert element i kilde-arrayen.
Ved første øyekast ligner metoden flatMap
på metoden map, men hovedforskjellen
er at den alltid returnerer en endimensjonal array.
Syntaks
let newArray = array.flatMap(funksjon);
Eksempel
La oss få en ny array,
ved å bruke metoden flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Resultat av kjøring av koden:
['a!', 'b!', 'c!']
Eksempel
La oss få en ny array fra en kilde-array som består av tall:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Resultat av kjøring av koden:
[3, 4, 5, 6, 7]
Eksempel
La oss prøve å bruke metoden
flatMap på en array med første
nivå av innlegging:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Etter kjøring av koden vil vi se at funksjonsbetingelsene ble brukt på under-arrayen, og behandlet den som ett element. Derfor har bruk av denne metoden på innleggede arrays ingen mening:
[3, 4, 5, '4,52']
Eksempel
Hvis vi ikke vil bry oss med innleggingsnivået,
men heller slå sammen hele arrayen, bruker vi parameteren Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Resultat av kjøring av koden:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Eksempel
La oss bruke to metoder på arrayen:
flatMap og map, og i parameteren til begge metodene
vil det være spesifisert en funksjon som gjør arrayen todimensjonal:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('metoden map', res1);
console.log('metoden flatMap', res2);
Resultat av kjøring av koden:
'metoden map' [[3], [6], [9], [12], [15], [18]]
'metoden flatMap' [3, 6, 9, 12, 15, 18]
Se også
-
metoden
flat,
som returnerer en array fra underarrays