Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Problemas com o código da video aula

<meta charset="UTF-8">

<input/>

<button> Compare com o meu segredo </button>

<script>

    var segredos = [2,6,10];

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

    input.focus();

    function verifica() {

        var achou = false;

            for(var posicao = 0; segredos < posicao.length; 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>

Insiro a resposta certa na caixa de texto, mas ele sempre alerta que está errado. Não consigo achar onde está o erro.

5 respostas

Oi, Vitor, tudo bem?

Faltou a tag <input/>para que ele capture o valor que o usuário põe para que verifique o segredo.

Espero ter te ajudado!

Eu tinha esquecido de copiar e colar ela aqui! Mas mesmo com a tag o código não está funcionando

Boa noite, Vitor! Como vai?

Quando o código JavaScript não funciona como esperado, é uma boa prática dar uma olhada no console do navegador. Vc verificou se lá aparece alguma mensagem de erro? Se sim, poderia colar ela aqui pra gente tentar te ajudar?

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Tudo bom, professor Gabriel? Já abri o console do navegador e ele não apresenta nenhum erro. O programa apenas não alerta que eu acertei mesmo colocando a resposta. Ele alerta que eu errei independentemente da resposta.

solução

Opa, Vitor! Entendi. Dando uma olhada melhor aqui no seu código, vi que no for dentro da função verifica() vc fez

for(var posicao = 0; segredos < posicao.length; posicao++) {
     // Restante do código omitido.
}

quando na verdade o correto seria fazer

for(var posicao = 0; posicao < segredos.length; posicao++) {
     // Restante do código omitido.
}

afinal de contas o array onde estão os números se chama segredos e é ele que possui a propriedade length. Veja se com essa correção as coisas funcionam como vc esperava.

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!