Sobes.tech
Junior

Qual é a diferença entre os métodos foreach e map em JavaScript?

sobes.tech IA

Resposta da IA

O forEach percorre os elementos do array e executa uma função de callback para cada elemento, mas não cria um novo array. É usado para efeitos colaterais, como imprimir na consola ou modificar variáveis externas.

O map também percorre os elementos do array e executa uma função de callback para cada elemento. No entanto, ele devolve um novo array contendo os resultados da execução dessa função em cada elemento. É usado para transformar um array em outro.

Exemplo com forEach:

const numbers = [1, 2, 3];
numbers.forEach(number => console.log(number * 2));
// Saída:
// 2
// 4
// 6
// numbers permanece como [1, 2, 3]

Exemplo com map:

const numbers = [1, 2, 3];
const doubledNumbers = numbers.map(number => number * 2);
console.log(doubledNumbers);
// Saída: [2, 4, 6]
// numbers permanece como [1, 2, 3]

A principal diferença é que o map é um método "funcional" que não altera o array original e devolve um novo, enquanto que o forEach é principalmente destinado a realizar ações em cada elemento sem devolver um novo array.

Critério forEach map
Valor devolvido undefined Novo array
Alteração do array Não cria um novo array Cria um novo array
Propósito principal Executar ações em cada elemento Transformar um array em outro
Encadeamento de métodos Não suportado naturalmente Suportado (retorna um array)