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

Duvida Array - Só acerta o primeiro item

Olá, estava seguindo a aula 9 sem problemas até o momento que é necessário usar o comendo for. Por algum motivo o script entende que só o primeiro item (5) está correto, enquanto os demais sempre aparecem como errado. Não consigo enxergar onde estou errando na estrutura do código.

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

<script>

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

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

    function verifica(){

        for(var posicao = 0; posicao < 4; posicao++){


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

                alert("Você acertou!!!");

                }else{

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

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


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

    button.onclick = verifica;


</script>
3 respostas
solução!

Olá Thiago Veja

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

estão dentro do Loop For, basta removê-los do corpo do for

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

<script>

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

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

    function verifica(){

        for(var posicao = 0; posicao < 4; posicao++){


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

                alert("Você acertou!!!");

            }else{

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


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


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

    button.onclick = verifica;


</script>

Mas ainda este programa não está legal, pois ele repete os alerts para as outras posições do array, mas nos próximos exercicios deste curso acho que este comportamento é corrigido

Obrigado, Flaviano! Era isso mesmo. Estava refazendo o passo a passo para identificar o erro. A parte de quebrar a repetição é mais para frente mesmo.

Por nada Thiago, precisando é só postar ;)