DEV Community

Cover image for Quando usar map, filter, reduce, for, forEach e flatMap em JavaScript
Carlos Rogerio Orioli
Carlos Rogerio Orioli

Posted on

Quando usar map, filter, reduce, for, forEach e flatMap em JavaScript

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];
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

forEach → executar ações

Use quando quiser apenas executar efeitos colaterais, sem retornar dados.

numbers.forEach(n => {
  console.log(n);
});
Enter fullscreen mode Exit fullscreen mode

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]
Enter fullscreen mode Exit fullscreen mode

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)