Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mensagem "Você acertou" e "Você errou" aparecem quando inserido o número correto

Durante a explicação no vídeo, é dito para que seja criado uma variável antes do for que receba o valor false. e após o for inserir um if para verificar se achou é igual a false. Bom, eu fiz isso utilizando a sintaxe no segredos.lenght para pegar o tamanho do array e fazer a verificação. Porém, mesmo acertando, a mensagem de erro aparece. Eu fiz a alteração da sintaxe para segredos < 5 e com isso o problema foi resolvido. Vou deixar os códigos abaixo e se alguém souber uma solução para isso, agradeço:

<meta charset="UTF-8">

<input/>
<button>Clique aqui</button>

<script>

    var segredos = [5,7,10,2,3];

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



    function verifica(){

        var achou = false;
        for(var posicao = 0; posicao < segredos.lenght; posicao++){

            if(input.value == segredos [posicao]){

                alert("Você acertou");
                achou = true;
                break;

            }
        }

        if(achou == false){

            alert("Você errou!");

        }


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


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


    button.onclick = verifica;


</script>
1 resposta
solução!

Salomão, isso acontece porque você errou a grafia de length, e escreveu lenght. O correto é o t vir antes do h.

Tente deste modo e verá como as coisas mudam. O motivo disso é que segredos.lenght é nulo, e nulo é menor do que zero, então o programa nunca sequer entra no laço for e pula direto pra comparação.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software