De flatMap Methode
De methode flatMap retourneert
een nieuwe array, gemaakt nadat
op elk element van de bronarray
de callback,
gespecificeerd in de parameter van de methode, is toegepast.
Op het eerste gezicht lijkt de methode flatMap
op de methode map, maar het belangrijkste verschil
is dat het altijd een eendimensionale array retourneert.
Syntaxis
let newArray = array.flatMap(functie);
Voorbeeld
Laten we een nieuwe array verkrijgen,
met behulp van de methode flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Resultaat van de code-uitvoering:
['a!', 'b!', 'c!']
Voorbeeld
Laten we een nieuwe array verkrijgen uit een bronarray bestaande uit getallen:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Resultaat van de code-uitvoering:
[3, 4, 5, 6, 7]
Voorbeeld
Laten we proberen de methode
flatMap toe te passen op een array met het eerste
niveau van genestheid:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Na het uitvoeren van de code zien we dat de voorwaarden van de functie werden toegepast op de subarray, deze beschouwend als één element. Daarom heeft het aanroepen van deze methode op geneste arrays geen zin:
[3, 4, 5, '4,52']
Voorbeeld
Als we ons niet willen bezighouden met het niveau van genestheid,
maar de hele array willen samenvoegen, dan gebruiken we de parameter Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Resultaat van de code-uitvoering:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Voorbeeld
Laten we twee methoden toepassen op de array:
flatMap en map, waarbij in de parameter van beide methoden
een functie wordt opgegeven die de array tweedimensionaal maakt:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('methode map', res1);
console.log('methode flatMap', res2);
Resultaat van de code-uitvoering:
'methode map' [[3], [6], [9], [12], [15], [18]]
'methode flatMap' [3, 6, 9, 12, 15, 18]
Zie ook
-
de methode
flat,
die een array retourneert uit subarrays