2
respostas

Problema ler posições do array

Meu programa só lê o primeiro valor do array, se eu coloco 5 por exemplo, que é o primeiro valor, ele dá como correto, se coloco um valor das demais posições, ele dá como errado.

se eu substituir o segredo.lenght por um numero, também mantem o problema.

Onde estou errando?

<meta charset="UTF-8">

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

<script>

    var posicao = 0;
    var segredo = [5,7,10,2];

    var variavelRecebendoHtml = document.querySelector("input");
    variavelRecebendoHtml.focus();
    function verifica(){

        var achou = false;
        for(var posicao = 0; posicao < segredo.length; posicao++){

            if(variavelRecebendoHtml.value == segredo[posicao]){

                alert("VOCÊ ACERTOU FODÃO");
                achou = true;
                break;
            }

            else{
            alert("EROOOOWWW");
            }

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

        }

    }

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


</script>
2 respostas

Olá Alisson!

Um erro que pode estar ocorrendo é que você fixou o valor de posicao lá em cima no código:

<script>

    var posicao = 0;
    var segredo = [5,7,10,2];

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

    ...

Remova esse var posicao = 0; do começo pra ver se funciona.

Se não funcionar eu tentaria fazer utilizando um while ao invés de um for para ter mais controle de quando sair do laço:

var achou = false;
var posicao = 0;
var segredo = [5,7,10,2];

while(posicao < segredo.length){

    if(variavelRecebendoHtml.value == segredo[posicao]){

        alert("VOCÊ ACERTOU FODÃO");
        achou = true;
        break;
    } else if (posicao <= segredo.length){
        posicao++;
    } else {
        alert("EROOOOWWW");
    }
}

Espero que tenha ajudado! :D

Bons estudos! ^^

Olá Alisson!

Tive um aluno com um problema semelhante ao seu!

Cheguei a esse código final (usando for ^^):

<meta charset="UTF-8">


<input/>
<button>Compare</button>



<script>

    var segredos = [3,5,2];


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

    function verifica() {

        var acertou = false;

        for(posicao = 0 ; posicao < segredos.length; posicao++){
            if(input.value == segredos[posicao]){
                acertou = true;
            }
        }

        if(acertou){
            alert("ACERTOU!!");
        } else{
            alert("ERRRROOOU!");
        }


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

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

    button.onclick = verifica;

</script>

Espero que ajude!

Bons estudos! :D