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) |