Javascript metodi flatMap(), muutaLitistäen() suomeksi, luo uuden taulukon alkuperäisen taulukon pohjalta ja litistää sen poistamalla siitä enintään yhden tason.
flatMap(function (alkio, indeksiluku, taulukko))
function aliohjelma
alkio muuttuja
indeksiluku numero
taulukko taulukko
flatMap() metodissa käytännössä kutsutaan ensin map() metodia ja sen lopputulokselle kutsutaan flat() metodia.
flatMap() metodia voidaan käyttää esimerkiksi muuttamaan jokaisen taulukon alkion uudeksi taulukoksi, jotka kuitenkin ovat lopputuloksessa peräkkäin yksitasoisessa taulukossa.
flatMap() metodille annetaan parametrinä aliohjelma. Aliohjelmaa kutsutaan taulukon jokaisella alkioilla ensimmäisestä alkiosta lähtien. Aliohjelman palauttamasta arvosta tulee uuden taulukon alkio. Uudesta taulukosta poistetaan enintään yksi taso lopussa.
Luodaan uusi taulukko, jossa jokaista alkiota ennen on pieni tai iso sana riippuen numeron suuruudesta.
> [1, 2, 3, 4].flatMap(alkio => (
[alkio > 2 ? 'iso' : 'pieni', alkio]
)
)
[ 'pieni', 1, 'pieni', 2, 'iso', 3, 'iso', 4 ]
Aliohjelmalle annetaan toisena parametrinä indeksiluku, missä ensimmäisessä parametrissä oleva alkio sijaitsee.
Luodaan uusi taulukko, jossa jokaista alkiota ennen on sen indeksiluku taulukossa.
> [ 1, 2, 3, 4 ].flatMap((alkio, indeksiluku) => ([indeksiluku, alkio]))
[ 0, 1, 1, 2, 2, 3, 3, 4 ]
Aliohjelmalle annetaan kolmantena parametrinä koko taulukko mitä käydään läpi.
Luodaan uusi taulukko, jossa jokaista alkiota ennen on lisätty alkuperäinen taulukko. (Hieman keinotekoinen esimerkki)
> [ 1, 2, 3 ].flatMap((alkio, indeksiluku, taulukko) => ([taulukko, alkio]))
[ [ 1, 2, 3 ], 1, [ 1, 2, 3 ], 2, [ 1, 2, 3 ], 3 ]
Jätä kommentti