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
let newArray = masīvs.flatMap(funkcija);
Piemērs
Izmantosim metodi flatMap,
lai iegūtu jaunu masīvu:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Koda izpildes rezultāts:
['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:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Koda izpildes rezultāts:
[3, 4, 5, 6, 7]
Piemērs
Mēģināsim piemērot metodi
flatMap masīvam ar pirmo
ligzdotības līmeni:
let 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:
[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:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Koda izpildes rezultāts:
[
'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:
let 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:
'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