Map, Filter e Reduce são três funções fundamentais da programação funcional, presentes em várias linguagens, como JavaScript, Python e Java. Elas permitem manipular coleções de dados de maneira eficiente e elegante, sem a necessidade de loops imperativos. Com o uso dessas funções, você pode escrever código mais conciso, legível e fácil de manter. Neste artigo, vamos entender como cada uma dessas funções funciona e como utilizá-las corretamente.
1. Map: Transformando Dados
A função map
é utilizada para transformar cada item de uma coleção, como uma lista ou array, aplicando uma função a cada elemento. Em vez de modificar os dados originais diretamente, ela retorna uma nova coleção com os resultados da transformação.
Exemplo em JavaScript:
const numeros = [1, 2, 3, 4];
const quadrados = numeros.map(num => num * num);
console.log(quadrados); // [1, 4, 9, 16]
Neste exemplo, o map
transforma cada número da lista em seu quadrado.
2. Filter: Filtrando Dados
A função filter
é usada para criar uma nova coleção contendo apenas os itens que atendem a um critério específico. Ela recebe uma função que retorna um valor booleano, determinando se o item deve ou não ser incluído no novo conjunto.
Exemplo em JavaScript:
const numeros = [1, 2, 3, 4, 5];
const pares = numeros.filter(num => num % 2 === 0);
console.log(pares); // [2, 4]
No exemplo acima, filter
retorna apenas os números pares da lista.
3. Reduce: Reduzindo Dados a um Valor Único
A função reduce
permite acumular ou reduzir os itens de uma coleção a um único valor, aplicando uma função de agregação. Esse valor pode ser uma soma, produto ou qualquer outra operação.
Exemplo em JavaScript:
const numeros = [1, 2, 3, 4];
const soma = numeros.reduce((acc, num) => acc + num, 0);
console.log(soma); // 10
Aqui, reduce
acumula todos os números e retorna a soma.
Conclusão
Map, Filter e Reduce são funções poderosas da programação funcional que permitem manipular coleções de maneira limpa e expressiva. Usá-las corretamente pode melhorar a legibilidade e eficiência do seu código, tornando-o mais modular e fácil de entender. Se você ainda não utiliza essas funções em seus projetos, experimente incorporá-las e veja como elas podem simplificar seu trabalho.