Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Referente ao código da aula 09 - Manipulando Array

Boa tarde!!!

Tenho uma dúvida sobre  este tópico do código.

Pelo que este tópico do programa é responsável? Como ele funciona exatamente no código? Fiquei um pouco confuso ao ver o instrutor criando esta parte do código.

                              Desde já obrigado. 
  while(numero <= quantidade) {

              var numeroAleatorio = sorteia();

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

        }

        return segredos;

    }
7 respostas

Boa noite!!!

No começo do código deve ter algo escrito como function funcao(parametros){ , teria como copiar essa parte também para eu entender o contexto.

Ou então, mais fácil, joga o link aqui da aula onde você viu esse código.

Boa tarde!!

        Segue o link.....

https://cursos.alura.com.br/course/logica-programacao-javascript-html/task/17765

<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 = [];

        var numero = 1;

        while(numero <= quantidade) {

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

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

        }

        return segredos;

    }

    var segredos = sorteiaNumeros(4);

    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>
solução!

Vamos lá, como fiz no outro tópico vou explicar linha a linha

function sorteiaNumeros(quantidade) {

Função sorteiaNumeros que recebe como argumento quantidade


        var segredos = [];

cria um vetor vazio chamado segredos


        var numero = 1;

cria uma variável chamada número com o número 1 guardado

        while(numero <= quantidade) {

esse é um laço while que enquanto a variável numero for menor que a quantidade executa o laço a seguir.

              var numeroAleatorio = sorteia();

Função sorteia() definida lá encima que gera um número aleatório de 1 a 10. E o resultado dessa função é guardado na variável numeroAleatorio

              var achou = false;

resseta a variável achou para falso

              if (achou == false) {

se a variável achou for igual a falso executa o bloco if a seguir. sempre vai entrar porque sempre na linha anterior está como falso.

                     segredos.push(numeroAleatorio);

adciona o numeroAleatorio no fim do vetor segredos

              }
              numero++;

soma mais 1 ao número para ir para o próximo ciclo do laço while

        }

        return segredos;

    }

quando a variável numero for igual quantidade sai do laço while e returna o vetor segredos preencido como resultado da função.

Espero ter ajudado!!!

Oi Thiago a resposta do André te ajudou, resta alguma dúvida ou já foi solucionada ?, manda um feedback pra gente.

Boa tarde! Obrigado pela explicação, ajudou muito. Mas tenho uma pergunta: Qual o propósito da variável achou se ela sempre será falsa? ` var achou = false;

if (achou == false) `

Oi nesse código ela não tem nenhum propósito pode ser que mais para frente o professor use para alguma coisa após alterar o código para ela ficar útil.

Oi Thiago a variável achou mais pra frente vai impedir que adicionemos um número repetido no array, em uma lógica semelhante a da função verifica que checa se acertamos o segredo.