flatMap Metode
Die metode flatMap gee 'n
nuwe skikking terug, geskep nadat
die callback,
aangedui in die metode se parameter,
op elke element van die oorspronklike skikking toegepas is.
Met die eerste oogopslag lyk die metode flatMap
soos die metode map, maar die hoofverskil
is dat dit altyd 'n eendimensionele skikking teruggee.
Sintaksis
let newArray = skikking.flatMap(funksie);
Voorbeeld
Kom ons verkry 'n nuwe skikking,
deur die metode flatMap te gebruik:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Resultaat van die kode-uitvoering:
['a!', 'b!', 'c!']
Voorbeeld
Kom ons verkry 'n nuwe skikking vanaf 'n oorspronklike een wat uit getalle bestaan:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Resultaat van die kode-uitvoering:
[3, 4, 5, 6, 7]
Voorbeeld
Kom ons probeer om die metode
flatMap toe te pas op 'n skikking met die eerste
vlak van inkapseling:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Na die kode uitgevoer is ons sal sien dat die funksie se voorwaardes toegepas is op die subskikking, wat dit as een element beskou het. Dus het die aanroep van hierdie metode op geneste skikkings geen sin nie:
[3, 4, 5, '4,52']
Voorbeeld
As ons nie met die inkapselingsvlak wil sukkel nie,
maar die hele skikking wil saamvoeg, gebruik ons die parameter Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Resultaat van die kode-uitvoering:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Voorbeeld
Kom ons pas twee metodes op die skikking toe:
flatMap en map, en in die parameter van albei metodes
sal 'n funksie wees wat die skikking tweedimensioneel maak:
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 metode', res1);
console.log('flatMap metode', res2);
Resultaat van die kode-uitvoering:
'map metode' [[3], [6], [9], [12], [15], [18]]
'flatMap metode' [3, 6, 9, 12, 15, 18]
Sien ook
-
die metode
flat,
wat 'n skikking van subskikkings teruggee