Metode flatMap
Metode flatMap atgriež
jaunu masīvu, kas izveidots pēc tam,
kad katram sākotnējā masīva elementam
tika piemērots atpakaļizsaukums,
kas norādīts metodes parametrā.
No pirmā acu uzmetiena metode flatMap
līdzinās metodei map, bet tās galvenā atšķirība
ir tā, ka tā vienmēr atgriež viendimensijas masīvu.
Sintakse
javascriptlet newArray = masīvs.flatMap(funkcija);
Piemērs
Izmantosim metodi flatMap,
lai iegūtu jaunu masīvu:
javascriptlet arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Koda izpildes rezultāts:
javascript['a!', 'b!', 'c!']
Piemērs
Izmantosim metodi flatMap, lai iegūtu jaunu masīvu
no sākotnējā masīva, kas sastāv no skaitļiem:
javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Koda izpildes rezultāts:
javascript[3, 4, 5, 6, 7]
Piemērs
Mēģināsim piemērot metodi
flatMap masīvam ar pirmo
ligzdotības līmeni:
javascriptlet arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Pēc koda izpildes mēs redzēsim, ka funkcijas nosacījumi tika piemēroti podmasīvam, uzskatot to par vienu elementu. Tāpēc šīs metodes izsaukšanai ligzdotos masīvos nav jēgas:
javascript[3, 4, 5, '4,52']
Piemērs
Ja mēs vēlamies neiesaistīties ar ligzdotības līmeni,
bet apvienot visu masīvu, tad izmantojam parametru Infinity:
javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Koda izpildes rezultāts:
javascript[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Piemērs
Piemērosim masīvam divas metodes:
flatMap un map, turklāt abu metodu parametrā
tiks norādīta funkcija, kas padara masīvu divdimensiju:
javascriptlet 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);
Koda izpildes rezultāts:
javascript'metode map' [[3], [6], [9], [12], [15], [18]]
'metode flatMap' [3, 6, 9, 12, 15, 18]
Skatiet arī
-
metode
flat,
kas atgriež masīvu no podmasīviem