1
resposta

[Projeto] Mão na massa: Sorteador de Números

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();
}
1 resposta

Oi, Vanessa! Tudo bem?

Ótimo código! Espero que continue a explorar os conteúdos para ampliar seu conhecimento e desenvolver novas habilidades. Caso tenha restado alguma dúvida em relação a qualquer conteúdo do curso ou atividade, não hesite em perguntar, estou disponível e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!