Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro com forEach

quando tento iterar a lista "valores" usando forEach, recebo um: "O objeto não oferece suporte à propriedade ou método 'forEach'". já aconteceu outras vezes tb. Por favor, alguém sabe o pq? obs.: executando no console do chrome.

5 respostas

Boa tarde, Martins! Como vai?

Vc poderia colar o seu código aqui para eu poder dar uma olhada no que vc fez e te ajudar? Eu acabei de testar aqui e tudo funcionou perfeitamente. É possível que esteja faltando algum detalhe no seu código.

Grande abraço e bons estudos!

Bom dia! na verdade eu estava executando o código no internet explorer 11 e nele aparece essa mensagem, então rodei no chrome e deu certo...

código testado:

function exibirResultado(valor, index, ar) {
    document.write("valor: " + valor);
    document.write(" index: " + index);
    document.write("<br />");
}
var letras = ['ab', 'cd', 'ef'];

letras.forEach(exibirResultado);

Ah, entendi! Eu criei um arquivo HTML com esse seu código e ele funcionou tanto no Chrome quanto no Edge. Eu não tenho o IE aqui para testar. Mas, como pode ser visto nesse link, o IE 11 tem suporte ao forEach().

Faz o seguinte, crie um arquivo HTML como eu fiz e tente abrir ele usando o IE 11. Daí manda um print aqui tanto do resultado na tela do navegador quanto do console do IE 11.

Bom dia Gabriel, fiz uma página html com o script e testei no i.e 11 sem problemas mas, no console ainda tem uns comportamrntos estranhos quando rodo somente o script no console, às vezes objeto não oferece suporte, as vezes undefined e quando rodo pela primeira vez executa.... daí se altero alguma coisa e rodo de novo já não vai... enfim, vou usar o chrome ou firefox mesmo... imagem do erro: https://imgur.com/MJjr3Qu

<!DOCTYPE html>
<html>
<title>forEach</title>
<body>

<script>
function exibirResultado(valor, index, ar) {
    document.write("valor: " + valor);
    document.write(" index: " + index);
    document.write("<br />");
}
var letras = ['ab', 'cd', 'ef'];

letras.forEach(exibirResultado);


</script>

</body>
</html>
solução!

Excelente, Martins! Esse comportamento estranho deve ser apenas um bug do console do IE 11. O importante é que no navegador mesmo tudo funciona como deveria.

Grande abraço e bons estudos!