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

Posição

Olá, meu código não estava funcionando com o "input.value = ""; input.focus()" dentro do "for", ele dava que eu digitei um valor errado (alert("VOCÊ ERROU!!!")) mesmo digitando um valor que estava dentro do array. Ele só dava "VOCÊ ACERTOU!!!" se eu digitasse o primeiro valor do array (o 0).

Após um pouco de raiva (kkkkkkkkkkkk), decidi tirá-los do for e o código funcionou perfeitamente. Gostaria de saber o porquê do código não funcionar com essas instruções dentro do ciclo de repetição do "for". (é algo que instigou minha curiosidade, apesar de ter sido fruto de um erro meu por desatenção.)

Desde já agradeço! Estou adorando o curso.

<meta charset="UTF-8">

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

<script>

    var segredos = [5, 7, 8, 10, 15, 16, 44];
    var input = document.querySelector("input");
    input.focus();

    function verifica() {

        var achou = false;

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

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

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

            }

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

        }

        if (achou == false) {

            alert("VOCÊ ERROU!!")
        }

    }


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

    seila.onclick = verifica;


</script>
1 resposta
solução!

Oi Doglas, tudo bem?

Cara, você está comparando o valor do input com o valor da posição do array dentro do for, certo? Então na primeira vez que ele compara está OK, mas como você está com essas instruções dentro do for, quando ele vai para a segunda iteração no for o valor do input é uma string vazia ("") por causa do input.value = "", sendo assim nunca vai ser igual ao valor da posição do array, por isso sempre falava que você errou.