3
respostas

Qual o meu erro ?

Caros gostaria de entender o que está errado no código.

<meta charset="UTF-8">

<input/>

<button>Compre o meu segredo</button>


<script>

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

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

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


    function verifica () {

        for (var posição = 0; i posição < 4; posição ++) {
        if(input.value == segredos [posição]) {
            alert("Você Acertou");
        } else {

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

        }

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

 </script>
3 respostas

Tem um erro no FOR, tem um " i".

Eu percebi que o código mostra mensagens quatro vezes. Caso você queira que ele mostra se acertou ou erro apenas uma vez, você pode fazer o seguinte ajuste:

<meta charset="UTF-8">

<input/>

<button>Compre o meu segredo</button>


<script>

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

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

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


    function verifica () {

        var acertou = "NAO";
        for (var posição = 0; posição < 4; posição ++) {
            if(input.value == segredos [posição]) {
                var acertou = "SIM";
            } 
        }

        if (acertou == "SIM"){
             alert("Você Acertou");
        } else {
             alert ("Você Errou!!!");  
        }
        input.value = "" ;
        input.focus () ;
    }

 </script>

Estou com mais um erro ao utilizar o length do array

<meta charset="UTF-8">

<input/>

<button>Compre o meu segredo</button>


<script>

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

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

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


    function verifica () {

        for (var posição = 0; posição < posição.length; posição ++) {
        if(input.value == segredos [posição]) {
            alert("Você Acertou");
            break
        } else {

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

        }

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

 </script>

Na verdade existem dois problemas, o primeiro, é que a variável "posição" não deveria estar com acentuação, use "posicao", nesse caso. O segundo problema, é que você instancia a variável "posição" e faz uma comparação dela com o próprio lenght, acredito que você deva alterar a condição do seu for, como no exemplo abaixo:

<meta charset="UTF-8">

<input/>

<button>Compre o meu segredo</button>


<script>

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

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

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


    function verifica () {

            //Comparação de posicao com o length de segredos
        for (var posicao = 0; posicao < segredos.length; posicao ++) { 
        if(input.value == segredos [posicao]) {
            alert("Você Acertou");
            break
        } else {

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

        }

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

 </script>