4
respostas

Problema com devolutiva do código.

Estou tendo dificuldade em identificar o erro nesse código. Quando peço para me mostrar a lista ele me devolve sempre uma lista repleto de NaNs.

function sorteia(){

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

}

function sorteiaNumero(quantidade){

  var lista = [];

  var numero = 1;

  while(numero <= quantidade){

      var numeroSorteado = sorteia();

      var tem = false;

        if(numeroSorteado !== 0){

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

            if(lista[i] == numeroSorteado){

              tem = true;
              break;

            }
          }

          if(tem == false){

            lista.push(numeroSorteado);
            numero++;

          }
       }
    }
  return lista;
}
4 respostas

O fato da lista estar vazia na hora que voce inicia o for, não faria com que ele entrasse uma unica vez? talvez tentar colocar o segundo If dentro do for possa ajudar!

Não resolve, porque a segunda condição if precisa colocar os número para substituir dentro da lista. Se colocar o if dentro do for o código da um bug que interrompe o funcionamento da página. Estou fazendo testes no site p5.js.

Outra dúvida, se você o tamanho da lista, como var lista = [quantidade], não serviria? como não manjo muito de js acaba me confundindo mas estou tentando ajudar haha

Hehehe, estamos todos aprendendo, mas não dá para colocar nada na lista pq ela não recebe parâmetro também. Já fiz esse código algumas vezes, mas este em especial deu erro e não consigo entender o motivo.