1
resposta

[Dúvida] TRAVA

Olá, porque o projeto trava quando eu coloco de = até? Já coloquei >= mesmo assim ele não rodaInsira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Bruno!

Deixe algumas variáveis em escopo global, como a lista com os números sorteados e a variável que vai temporariamente armazenar o numero sorteado.

var sorteados = [];
var numero;

Coloque umas condições para que os inputs não sejam preenchidos com dados errados e coloque o código principal em um else pra evitar alguns erros:

if(de > ate){
        alert("Reveja se inseriu os dados corretamente!");
        reiniciar();
        return;
    }
    if(quantidade > ate-de+1){
        alert('Diminua a quantidade de números sorteados ou aumente o escopo da geração.\nEssa geração de números, não repete números já sorteados.');
        return;
    }else{
        for(let i=0; i<quantidade; i++){
            numero = gerarNumeroAleatorio(de, ate);
            while(sorteados.includes(numero)){
                numero = gerarNumeroAleatorio(de, ate);
            }
            sorteados.push(numero);
        }
        document.getElementById('resultado').innerHTML = `<label class="texto__paragrafo">Números sorteados: <br>${sorteados}</label>`;
        alterarStatusBotao();
    }

Código da função sortear() corrigido:

function sortear(){
    let quantidade = parseInt(document.getElementById('quantidade').value);
    let de = parseInt(document.getElementById('de').value);
    let ate = parseInt(document.getElementById('ate').value);
    var sorteados = [];
    var numero;
    if(de > ate){
        alert("Reveja se inseriu os dados corretamente!");
        reiniciar();
        return;
    }
    if(quantidade > ate-de+1){
        alert('Diminua a quantidade de números sorteados ou aumente o escopo da geração.\nEssa geração de números, não repete números já sorteados.');
        return;
    }else{
        for(let i=0; i<quantidade; i++){
            numero = gerarNumeroAleatorio(de, ate);
            while(sorteados.includes(numero)){
                numero = gerarNumeroAleatorio(de, ate);
            }
            sorteados.push(numero);
        }
        document.getElementById('resultado').innerHTML = `<label class="texto__paragrafo">Números sorteados: <br>${sorteados}</label>`;
        alterarStatusBotao();
    }
}

Quaisquer duvidas coloque no fórum.

Bons estudos e um abraço!!