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

Manipulando array - retorno da função devolve array vazia

Tentando reproduzir o código da aula acabei encontrando um erro no meu, mesmo utilizando segredos.push(sorteia()) a função sorteiaNumero me retorna uma lista vazia.

<meta charset="utf-8">


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

<script type="text/javascript">

  function sorteia() {

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

  function sorteiaNumeros(quantidade) {

    var segredos = []; // cria array vazio para ser prenchido

    var numero = 1; //variavel para inicializar o loop while e indicar a quantidade máxima de número que temos que gerar

    while(numero <= quantidade) {

            segredos.push(sorteia());
            numero++;
      } return segredos
  }
  var segredos = sorteiaNumeros();
  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>

`

2 respostas
solução!

Boa noite, Douglas. Você deveria ter passado um número como argumento para a função sorteiaNumeros. Seu erro está neste trecho de código:

 var segredos = sorteiaNumeros();

Obrigado, João.