1
resposta

Dúvida desse tópico, resolução ?

<meta charset="UTF-8">

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

<script>
    function sorteia() {

       return Math.round(Math.random() * 10);

    }

    function sorteiaNumeros(quantidade) {

        var segredos = []; // AQUI


        var numero = 1;

        while(numero <= quantidade) {

              var numeroAleatorio = sorteia();
              var achou = false;

              if (numeroAleatorio !== 0) {

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


                           if(segredos[posicao] == numeroAleatorio){
                                achou = true;
                                break;
                           }

                     }

                     if (achou == false) {
                           segredos.push(numeroAleatorio);

                           numero++;
                     }

              }

        }

        return segredos;

    }

    var segredos = sorteiaNumeros(3);
    console.log(segredos);



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

    function verifica() {

       var achou = false;

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

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

                     alert("Você ACERTOU!");
                     achou = true;
                     break;
              } 
       }

       if(achou == false) {

              alert("Você ERROU!");
       }

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

    }

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

    button.onclick = verifica;

</script>

Pessoal, se segredos.length começa em 0 como entra no laço que só inicia se for < 0 ?

1 resposta

Olá Thiago, tudo certo? Espero que sim!

Sentimos muito pela resposta tardia.

Primeiramente, precisamos esclarecer alguns pontos:

  • Lista/Array: quando uma variável carrega vários valores que são referenciados pela sua posição na variável, começando pelo 0.

    Ex:

      var teste = [a, b, c, d], 
      //Representados por a na posição 0, b = 1, c = 2, etc.
  • No laço de repetição, quando declaramos a variável valendo 0 estamos armazenando um valor para aquela variável.

  • O .length vai utilizar da informação dos segredos, com base na largura dessa variável, ou seja, não olha para o conteúdo, mas sim a quantidade.


Levando em consideração as afirmações acima, o laço de repetição não usará do conteúdo dos segredos, mas sim da quantidade de conteúdo presente dentro dele, ou seja, vai limitar quantas vezes aquele laço poderá se repetir, enquanto o valor for maior que o da posição que vai aumentado com o tempo, ele continuará a reler esse trecho do código e repetir suas ações.

Se precisar de ajuda com qualquer dúvida ou problema fico à disposição, conte com a gente!

Um bom dia para você e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.