Map
A map function az egy tömb elemeinek az átalakítására való.
A bemeneti és kimeneti értékek típusai így írhatóak le általánosságban:
map :: (Array<a>, (a) -> b) -> Array<b>
Tehát a map function vár bemenetként:
- Egy tömböt, benne "a" típusú elemekkel
- Egy függvényt ami egyetlen a-ból b-t csinál.
Ha ezt a kettőt megkapta, akkor kimenetként visszaküld egy tömbnyi b típusú elemet.
A bemeneti tömbben lévő elemek típusa (a) megegyezhet, a kimeneti tömbben lévő elemek típusával (b).
Pl:
(Array<Number>, (Number) -> Number) -> Array<Number>
Sokszor előfordul azonban, hogy a bemeneti tömbben lévő elemek típusa (a), eltér a kimeneti tömbben lévő értékek típusától (b).
Pl: (Array<Comment>, (Comment) -> ReactListItem) -> Array<ReactListItem>
Egy JavaScriptes példa keretében mappeljük át a stringeket az egyes stringek karaktereinek számára:
["Sanyi", "József", "Dániel", "Béla", "János"].map(nev => nev.length);
Végeredmény: [5, 6, 6, 4, 5]
Megoldás PHP-ban:
array_map("strlen", ["Sanyi", "József", "Dániel", "Béla", "János"]);
Filter
A filter function az egy tömb elemeinek megszűrésére való.
A bemeneti és kimeneti értékek típusai így írhatóak le általánosságban:
filter :: (Array<a>, (a) -> boolean) -> Array<a>
Reduce
A reduce function tömb az egy elemeinek aggregálására való.
Tehát az előző array methodokhoz képest abban különbözik, hogy egyetlen összesített értékkel tér vissza.
A kimenet előállításához szüksége van a teljes tömbre, egy aggregáló függvényre és egy kiinduló értékre.
Teljes videó:
Ajánlott cikk: Objektum orientáltság kezdőknek