2
respostas

Solução diferente para a variável "achou"

Vamos lá:

Minha Lista = 5,7,10,2

Posições de cada valores respectivamente: 0,1,2,3

Quantidade de valores dentro da Lista: 4

Na minha lista eu tenho 4 valores, que vai da posição 0 até 3, então, a minha última posição é o 3.

Quando eu quero saber a quantidade de valores dentro da minha lista eu uso o ".length" e nessa lista ele me trás o valor 4 , pois tem 4 valores.

Para eu poder fazer o código mais interessante para mostrar o alerta de erro eu tive que criar uma variável para receber a última posição tendo como referência a quantidade de valores que a lista tem. Sabendo que a minha quantidade de valores é 4 e a minha última posição é 3, então a minha última posição é 1 a menos que a quantidade.

var ultimaPosicao = segredos.length - 1; // 3

Com a minha variável criada eu criei dentro do FOR, na linha 21, um IF falando que se ele estiver verificando a última posição e se o valor que ele colocou é diferente, então irá aparecer o alerta de ERRO. pois ele chegou na última verificação sem ter acertado nenhum nº da lista.

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

Vamos supor que eu tenha colocado "1" no input e ,então, eu não acertei nenhum número da lista. Eu creio que será lido o último IF da seguinte forma: if ( posicao (3) == ultimaPosicao (3) && input.value (1) != segredos (2) [posicao (3) ] ) { // Vai dar TRUE e irá mostrar o alerta apenas uma vez e irá ser depois da última verificação.

Verifiquem, por favor, se funciona com vocês e se tem algum erro no meu código. Obrigado!

<meta charset="UTF-8">

<input/>

<button>Compare com o meu Segredo</button>

<script>

    var segredos = [5,7,10,2];
    var ultimaPosicao = segredos.length - 1;

    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!! A lista dos meus segredos eram: " + segredos + " Posição: " + (parseInt(posicao)+1) + " Número: "+ segredos[posicao]);
                break;
            }
            if (posicao == ultimaPosicao && input.value != segredos[posicao]){
                alert ("Você NÃO ACERTOU nenhum dos números de dentro da minha lista. Os números da minha lista eram: " + segredos);
            } 
        }
        input.value = "";
        input.focus();
    }

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

</script>
2 respostas

Oi, Diógenes, tudo bem?

Excelente! Ótima explicação e ótimo código!

Parabéns pelo empenho nos estudos!

Continue praticando.

E qualquer dúvida pode contar com a gente aqui no fórum.

Abraços e bons estudos!

Boa noite, Murillo Godoi!!

Que bom que gostou e eu pude ajudar no aprendizado de alguém.

Ao mesmo tempo que eu ajudo eu também aprendo, pois tentando passar o aprendizado eu sedimento ele.

Sempre estarei por aqui para ler, aprender e contribuir no fórum.

Abraço. Sucesso na sua jornada!!