1
resposta

Mão na massa: proteção na entrada de valores

function sortear() {
    let listaNumeros = [];
    let numero;

    let quantidade = document.getElementById('quantidade').value;
    let de = parseInt(document.getElementById('de').value);
    let ate = parseInt(document.getElementById('ate').value);

    if ((de <= ate) && (ate - de + 1 >= quantidade)){


        while (listaNumeros.length < quantidade) {
            numero = obterNumeroAleatorio(de, ate);
            if (!listaNumeros.includes(numero)) {
                listaNumeros.push(numero);
            } 
        }

        let resultado = document.getElementById('resultado');
        resultado.innerHTML = `<label class="texto__paragrafo">Números sorteados: ${listaNumeros} </label>`;
        alterarStatusBotao();

    } else {
        alert('Dados incompatíveis.');
    }
}

function alterarStatusBotao() {
    let botao = document.getElementById('btn-reiniciar');

    if (botao.classList.contains('container__botao-desabilitado')) {
        botao.classList.remove('container__botao-desabilitado');
        botao.classList.add('container__botao');

    } else {
        botao.classList.remove('container__botao');
        botao.classList.add('container__botao-desabilitado');
    }
}

function obterNumeroAleatorio(min, max) {
    return parseInt(Math.random() * (max - min + 1) + min);
}

function reiniciar(){
    document.getElementById('quantidade').value = '';
    document.getElementById('de').value = '';
    document.getElementById('ate').value = '';
    document.getElementById('resultado').innerHTML = '<label class="texto__paragrafo">Números sorteados:  nenhum até agora</label>';
    alterarStatusBotao();
}

Apenas um if para restringir de qual a qual numero e um limite para a quantidade não ser maior que o intervalo.

1 resposta

Olá, Henrique!

Muito bacana a sua adição, isso aperfeiçoa o seu código e melhora a experiência para o usuário.

Continue praticando e explorando cada vez mais!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software