1
resposta

Código Sorteador de números

function sortear() {
    let quantidade = parseInt(document.getElementById('quantidade').value);
    let de = parseInt(document.getElementById('de').value);
    let ate = parseInt(document.getElementById('ate').value);
    
    let sorteados = [];
    let numero;

    for (let i = 0; i < quantidade; i++) {
        numero = obterNumeroAleatorio (de, ate);
        
        while (sorteados.includes (numero)) {
            numero = obterNumeroAleatorio (de, ate);             
        }
        sorteados.push (numero);     
    }
  
    let resultado = document.getElementById('resultado'); 
    resultado.innerHTML = `<label class="texto__paragrafo">Númeos sorteados: ${sorteados}</label>`;     
    alterarStatusBotao();  
}

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

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

Olá, Maria! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções para organizar a lógica do sorteio, utilizou muito bem o while para evitar duplicações nos números sorteados e ainda compreendeu a importância da manipulação do DOM para atualizar dinamicamente os resultados na tela.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é aplicar o método Array.from() para gerar listas de números de forma mais enxuta. Assim:

function gerarLista(min, max) {
    return Array.from({length: max - min + 1}, (_, i) => i + min);
}

console.log(gerarLista(1, 10));

Isso faz a criação automática de uma lista sequencial entre os valores definidos, facilitando manipulações posteriores.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!