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

Meu navegador trava ao executar o código

Não consigo encontrar meu erro.

<script>


    function sortear(){
        Math.round(Math.random());
    }

    var numerosSecretos = []; 
    var contador = 1;

    function geradorNumero(quantidadeNumeros){


    while (contador <= quantidadeNumeros){
    var achou = false;
    var aleatorio = sortear();

        if(aleatorio !== 0){

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

                if(numerosSecretos[posicao] == aleatorio){
                    achou = true
                    break;
                }

            }     

                if (achou == false){
                    numerosSecretos.push(aleatorio);
                    contador++
                }

        }
    }
    return numerosSecretos;
    }
    console.log(geradorNumero(3));
3 respostas

Oi Nikolas.

É bem provável que ele esteja preso num loop infinito. Talvez no for, aí ele consegue incrementar o contador e acaba travando o navegador.

estou com o mesmo problema...

solução!

Fiz um ajuste.

 <script>
    var numerosSecretos = [1,5]; 
    var numerosSecretosAchados = []; 
    var contador = 1;
    var achou = false;
    var aleatorio;

    function geradorNumero(quantidadeNumeros){

        while (contador <= quantidadeNumeros){

            aleatorio = sortear(0,5);

            if(aleatorio !== 0){
            console.log('Aleatório: '+ aleatorio); 

                for(var posicao = 0; posicao < quantidadeNumeros; posicao++){
                console.log('Posição: '+ posicao); 

                    if(numerosSecretos[posicao] == aleatorio){

                        numerosSecretosAchados.push(aleatorio);
                        console.log('Achou o '+ aleatorio);
                        break;
                    }
                }
                contador++
            }
        }

        return numerosSecretosAchados;
    }

    function sortear(min, max) {
      return Math.round(Math.random() * (max - min) + min);
    }

   console.log('GERADOR: '+ geradorNumero(3));
 </script>   

Diga se ajudou vocês?