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

Erro na Linha 53 no "input" do HTML para o JavaScript

A primeira parte do código a principio está rodando, o navegador acusou o erro na linha 53, no trecho onde se adiciona no Java os comandos do HTML.

<meta charset="UTF-8">

<input/>

<button>Compare com meu segredo</button>

<script>

    function sorteia(){

        return Math.round(Math.random()*10);
    }

    function sorteiaNumeros (quantidade){

        var segredos = [];
        var numero = 1;

        while (numero<=quantidade) {

            var numeroAleatorio = sorteia();

            if(numeroAleatorio !== 0){

                var achou = false

                for (var posicao; posicao < segredos.length; posicao++) {

                    if(segredos[posicao]==numeroAleatorio){

                        achou=true;
                        break;
                    }

                }

            if(achou==false){

                segredos.push(numeroAleatorio);
                numero++;
            }

            }
        }

        return segredos
    }

    var segredos = sorteiaNumeros(3);

    function 

    var input = document.querySelector("input");

    input.focus();

    function verifica(){

        if (input.value==segredo) {

            alert("Você acertou");
        } else {

            alert("Você errou!!!")
        }

        input.value = "";
        input.focus();

    }

    var button = document.querySelector("button");
    button.onclick = verifica;

</script>
2 respostas

Leiriel,

"batendo o olho" no seu código, faltou a inicialização da variável aqui:

for (var posicao; posicao < segredos.length; posicao++) {

Altere a primeira parte do FOR para var posicao = 0.

solução!

Olá Leiriel, tudo bem??

Creio que, o problema da execução de seu código, seja devido a inicialização do FOR de maneira correta.

Eu validei na minha máquina e rodou, alterando de:

for (var posicao; posicao < segredos.length; posicao++) {

para:

for (var posicao = 0; posicao < segredos.length; posicao++) {

Por que, isso acontece?

Sem a inicialização da variável POSIÇÃO, presente dentro do seu FOR, o sistema não consegue interpretar o valor inicial para essa variável, e acaba rodando de forma errônea nosso script.

Segue um exemplo de utilização: https://www.w3schools.com/js/js_loop_for.asp

Outra dica, você comentou, a respeito da linguagem que está utilizando é JAVA, porém, atente-se que, a linguagem é JAVASCRIPT, que são duas linguaguens de programação totalmente diferentes.

Um exemplo: https://www.java.com/pt_BR/download/faq/java_javascript.xml

Abraços!