JavaScript - Diferenças entre o forEach e o map

Introdução

Alguns array methods do JavaScript, por executarem basicamente a mesma função, mas de modos diferentes, podem acabar te confundido.

Esse pode ser o caso do forEach e do map, mas nesse post eu pretendo, de forma rápida, acabar com todas as suas dúvidas.

forEach()

Assim como o for, o forEach percorre todos os itens de um array, porém, sua utilização é mais recondada, visto que retorna um código muito mais legível.

Exemplo utilizando o for:

function usingFor(array, func) {
  for (let i = 0; i < array.length; i = i + 1) {
    func(array[i], i)
  }
}

Agora utilizando o forEach:

nossoForEach(["nome", "nome2"], function (nome, indice) {
  console.log(nome, indice)
})

map()

O map, assim como o forEach(), percorre todos os itens de um array. Entretanto, o map foi pensado para fazermos operações nesses itens:

const numeros = [1, 2, 3, 4, 5]

const usingMap = numeros.map(numeroAtual => {
  return numeroAtual + 1
})

console.log(usingMap) // [2, 3, 4, 5, 6]

Se utilizássemos o forEach nessa função, o retorno seria undefined.

Conclusão

Espero ter acabado de vez com a confusão ao utilizarmos um dos métodos. Então, se desejar pesquisar apenas um percorrer um array, vá de forEach. Caso deseje modificar os valores de um array, use o map;

Se surgirem dúvidas ou sugestões, não deixem de mandar aqui nos comentários!

Comentários