38 lines
1.1 KiB
Plaintext
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.
|