1
resposta

Sugestão de solução para o projeto

Olá! Apenas para compartilhar o meu código, segue como ficou (utilizei uma lógica diferente da aula para poder evitar o sorteio de números iguais... Criei primeiramente a lista com o "de" e "ate", e depois embaralhei essa lista, puxando os "quantidade" números pedidos no sorteio):

function sortear() {
    let listaNum = [];
    let quantidade = parseInt(document.getElementById("quantidade").value);
    let de = parseInt(document.getElementById("de").value);
    let ate = parseInt(document.getElementById("ate").value); 

    if (de > ate){
        alert('Cuidado! Você inseriu um número máximo menor do que o mínimo');
    } else if (quantidade > (ate - de)){
        alert('Você colocou números demais na quantidade! Diminua');
        reiniciar();
    } else {
            for (let i=de; i<=ate; i++){
                listaNum.push(i);
            }
        let embaralhada = listaNum.sort(() => Math.random() - 0.5); // Aqui ele pode ou não embaralhar a lista listaNum (sempre que Math.random() - 0.5 < 0)
        let sorteados = embaralhada.slice(0,quantidade);   // Cria uma nova array do índice 0 até quantidade a partir de embaralhada (os 'qtde'-1 primeiros)
        console.log("Sorteados",sorteados);   
        exibirTexto('resultado', `<label class="texto__paragrafo">Números sorteados:  ${sorteados}</label>`);  // Tem que colocar exatamente como aparece no cód HTML 
        habilitarBotao();
    }
}

    function habilitarBotao(){
        let botao = document.getElementById('btn-reiniciar');
        botao.classList.replace('container__botao-desabilitado','container__botao');
    }

function exibirTexto(tag, texto){
    let campo = document.getElementById(tag);
    campo.innerHTML = texto;
}
function reiniciar(){
    document.getElementById("quantidade").value = '';
    document.getElementById("de").value = '';
    document.getElementById("ate").value = '';
    exibirTexto('resultado', '<label class="texto__paragrafo">Números sorteados: nenhum até agora</label>');
}
1 resposta

Oi, Puandreborges! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei bastante da forma como você resolveu a lógica para evitar números repetidos, criando a lista completa e depois embaralhando. Essa abordagem é bem prática e mostra que você conseguiu adaptar o aprendizado de acordo com a necessidade.

Continue firme nos estudos.

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