4
respostas

A função .length não funciona

Boa noite galera, meu "posicao < segredos.length;" não funciona kkk (O código não está completo, parei nessa parte onde é adicionado o .length )

<meta charset="UTF-8">


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


<script>

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





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

    function verifica (){

        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();

        }
     }

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

button.onclick = verifica;













</script>    
4 respostas

Matheus de Oliveira Dotto tudo bem , experimenta colocar o input.value = ""; e o input.focus(); fora do laço for é esse o problema

  }else{
    alert("Você errou !!!!!!!");
    }
    input.value = "";
    input.focus();

    }
 }

////////////////////////////////////////////////

  }else{
    alert("Você errou !!!!!!!");
    }
    }
     input.value = "";
    input.focus();
 }

estou com o mesmo problema, o sublime text nao reconhece o .lenght

Estranho amigo, deve ser algum problema no seu editar de texto, pq eu copei e colei seu código aqui e para mim funcionou normal. uso o VS code

Boa noite! testando seu código percebi que: 1) Se não houver um "break" na função "else" ele vai dar loop infinito quando o resultado for errado;

function verifica (){

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

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

            alert("Você acertou !!!");
            break;
        }else{
        alert("Você errou !!!!!!!");
        break
        }
        input.value = "";
        input.focus();

        }
     }

2) Logo após esse ajuste você pode perceber que todos números do array, exceto o 5(no nosso caso o primeiro numero do array), iram retornar errado.

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

3) Isso se deve pelo fato do "else" não deixar o "if" terminar seu papel de ler todos os elementos do array. 4) Portanto sugiro que use outro função "if".

<meta charset="UTF-8">


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


<script>

var l = [2,4,6,8]

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

    function verifica(){

        for(var i = 0; i < l.length; i++){ 

            if(input.value == l[i]) {

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

        }
            if(input.value != l[i]){
                alert("ERROU")
            }
            input.value = "";
            input.focus(); 
    }





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

button.onclick = verifica;

</script>    

Espero ter ajudado!