--- title: Você pode descrever a principal diferença entre um loop `.forEach` e um loop `.map()`? subtitle: Por que você escolheria um em vez do outro? --- Para entender as diferenças entre os dois, vamos ver o que cada função faz. ## `forEach` - Itera através dos elementos em uma matriz. - Executa um callback para cada elemento. - Não retorna um valor. ```js const a = [1, 2, 3]; const doubled = a.forEach((num, index) => { // Faça algo com num e/ou índice. }); // doubled = undefined ``` ## `map` - Itera através dos elementos em uma matriz. - "Mapeia" cada elemento para um novo elemento chamando a função em cada elemento, criando um novo array como resultado. ```js const a = [1, 2, 3]; const doubled = a.map((num) => { return num * 2; }); // duplicou = [2, 4, 6] ``` A principal diferença entre `.forEach` e `.map()` é que `.map()` retorna um novo array. Se você precisa do resultado, mas não deseja alterar o array original, `.map()` é a opção clara. Se você simplesmente precisa iterar sobre um array, `forEach` é uma ótima escolha.