O JavaScript tem esses três métodos que abordam a manipulação de array de uma forma mais voltada à programação funcional.

Para aprendermos sobre map, reduce e filter, vamos utilizar uma metáfora de preparar uma vitamina.

Filter

Quando queremos preparar uma vitamina, escolhemos algumas frutas para compô-la. Abrimos a geladeira e filtramos do que temos ali dentro as frutas que desejamos.

Vamos imaginar que queremos fazer uma vitamina de abacate, banana e morango. Então devemos pegar apenas essas frutas.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/575d6389-79fc-4e2f-b74a-ed86ee38f488/filter.png

Definição filter()

Map

Agora que já temos nossas frutas, precisamos cortá-las para batê-las no liquidificador. Para fazer isso, transformar uma fruta inteira para uma fruta cortada.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b0d792f9-ac0b-4310-a077-56695c5331b8/map.png

Definição map()

Reduce

Por fim, para finalmente termos nossa tão esperada vitamina, vamos reduzir nossas frutas cortadas com um pouco de leite a uma vitamina.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/695532fd-a6a0-4a4e-b53f-cbbbe6e33bd1/reduce.png

Definição reduce()