map, filter, reduce, for, forEach e flatMap: qual usar?
Se você trabalha com JavaScript ou TypeScript, já se perguntou qual método usar para percorrer arrays — e por quê?
Aqui está um guia rápido, direto ao ponto, com exemplos simples
const numbers = [1, 2, 3, 4, 5];
map → transformar dados
Use quando quiser transformar cada item do array sem alterar o tamanho.
const doubled = numbers.map(n => n * 2);
// [2, 4, 6, 8, 10]
filter → remover dados
Use quando precisar manter apenas os itens que atendem a uma condição.
const even = numbers.filter(n => n % 2 === 0);
// [2, 4]
reduce → calcular ou agrupar
Use quando o objetivo for chegar a um único valor (soma, objeto, agrupamento).
const sum = numbers.reduce((total, n) => total + n, 0);
// 15
for → controle total
Use quando precisar de controle total da iteração, como break ou continue.
const result = [];
for (let i = 0; i < numbers.length; i++) {
result.push(numbers[i] * 2);
}
// [2, 4, 6, 8, 10]
forEach → executar ações
Use quando quiser apenas executar efeitos colaterais, sem retornar dados.
numbers.forEach(n => {
console.log(n);
});
flatMap → map + flatten
Use quando o map retorna arrays e você quer evitar .map().flat().
const pairs = numbers.flatMap(n => [n, n * 2]);
// [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]
Regra de ouro
- Transformar →
map - Filtrar →
filter - Calcular/agrupar →
reduce - Executar ações →
forEach - Evitar arrays aninhados →
flatMap
E você?
Qual desses métodos você mais usa no dia a dia?
Já se perdeu em um reduce achou difícil de ler?
Comenta aí
Top comments (0)