Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
O método forEach() executa uma dada função em cada elemento de um array.
Função para executar em cada elemento, recebendo três argumentos:
currentValueO valor atual do elemento sendo processado no array.
index OptionalO índice do elemento atual sendo processado no array.
array OptionalO array que forEach() está sendo aplicado.
thisArg OptionalOpcional. Valor a ser usado como this quando executar callback.
undefined.
O forEach executa o callback fornecido uma vez para cada elemento da ordem com um valor atribuido. Ele não é invocado para propriedades de índices que foram deletados ou que não foram inicializados (por ex. em arrays esparsos).
callback é invocado com três argumentos:
Se um parâmetro thisArg for passado para forEach(), ele será passado para o callback quando invocado como valor para this. Caso contrário, o valor undefined será passado como valor para this. O valor de this assumido no callback é determinado de acordo com as regras usuais para determinação do this visto por uma função.
O intervalo dos elementos processados por forEach() é determinado antes da primeira invocação do callback. Elementos que forem adicionados ao array depois da chamada ao forEach() começar não serão visitados pelo callback. Se os valores dos elementos existentes do array forem alterados, o valor passado para o callback será o valor no momento em que o forEach() visitá-los; elementos que forem deletados antes de serem visitados não serão visitados.
forEach() executa a a função callback uma vez para cada elemento do array – diferentemente de map() ou reduce(), ele sempre retorna o valor undefined e não é encadeável. O caso de uso típico é alterar o array no final do loop.
Nota: A única maneira de parar ou interromper um loop forEach() é disparando uma exceção. Se você precisa desse recurso, o método forEach() é a ferramenta errada. Você estará mais bem servido com um loop simples nesse caso. Se estiver testando o array de elementos para um predicado e precisar de um valor de retorno Boleano, você pode usar every() ou some(). Se estiverem disponíveis, os novos métodos find() e findIndex() também podem ser usados para terminação antecipada em predicados verdadeiros.
Os códigos a seguir logam uma linha para cada elemento na ordem:
O código a seguir cria uma cópia para cada objeto dado. Há diferentes formas de criar uma cópia para um objeto. Esta é somente uma forma de explicar como Array.prototype.forEach funciona. Ela usa um grupo de novas funções ECMAScript 5 Object.*
forEach é uma adição recente para o ECMA-262 standard; assim sendo, pode não estar presente em outras implementações do standard. Você pode contornar isto pela inserção do código a seguir no começo de seus scripts, permitindo o uso de forEach em implementações que normalmente não possuem este suporte.
Um algorítimo 100% verdadeiro para a 5ª Edição do ECMA-262, pode ser visto abaixo:
O algoritmo é exatamente o especificado na 5ª Edição da ECMA-262, assumindo Object e TypeError possuem seus valores originais e avalia callback.call para o valor original de Function.prototype.call.
Enable JavaScript to view this browser compatibility table.
| ECMAScript® 2027 Language Specification # sec-array.prototype.foreach |
This page was last modified on 24 de jun. de 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.