Foi implementado:
- Proteção na entrada de valores
- Ordenação crescente dos números sorteados (utilizando sort)
- Alteração da propriedade innerHTML por textContent para melhor proteção de dados (selecionando o elemento filho label com querySelector)
let inputQuantidade = document.getElementById('quantidade');
let inputMinimo = document.getElementById('de');
let inputMaximo = document.getElementById('ate');
function sortear() {
let quantidade = parseInt(inputQuantidade.value);
let numeroMinimo = parseInt(inputMinimo.value);
let numeroMaximo = parseInt(inputMaximo.value);
let listaDeNumeros = [];
let quantidadeSorteada = 0;
if (numeroMinimo >= numeroMaximo) {
alert("O numero mínimo deve ser menor que o numero máximo a ser sorteado!");
} else if (quantidade > numeroMaximo - numeroMinimo + 1) {
alert("A diferença entre o maior e o menor número não é suficiente para a realização do sorteio! Escolha um intervalo maior ou diminua a quantidade :)");
} else {
while (quantidadeSorteada < quantidade) {
let numeroSorteado = obterNumero(numeroMinimo, numeroMaximo);
if (!listaDeNumeros.includes(numeroSorteado)) {
quantidadeSorteada++;
listaDeNumeros.push(numeroSorteado);
}
}
let listaOrdenada = listaDeNumeros.sort((a, b) => a - b);
let texto = `Números sorteados: ${listaOrdenada}`;
document.getElementById('resultado').querySelector('label').textContent = texto;
alterarStatusBotao();
}
}
function obterNumero(minimo, maximo) {
return parseInt(Math.random() * (maximo - minimo + 1)) + minimo;
}
function alterarStatusBotao() {
let botao = document.getElementById('btn-reiniciar');
if (botao.classList.contains('container__botao-desabilitado')) {
botao.removeAttribute('disabled');
botao.classList.remove('container__botao-desabilitado');
botao.classList.add('container__botao');
} else {
botao.setAttribute('disabled', true);
botao.classList.remove('container__botao');
botao.classList.add('container__botao-desabilitado');
}
}
function reiniciar() {
inputQuantidade.value = '';
inputMinimo.value = '';
inputMaximo.value = '';
document.getElementById('resultado').querySelector('label').textContent = 'Números sorteados: nenhum até agora';
alterarStatusBotao();
}