front-end-interview-handbook/packages/quiz/questions/can-you-describe-the-main-d.../pt-BR.mdx

38 lines
1.1 KiB
Plaintext

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