Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio Sorteador de Numeros

Segue o codigo do desafio

let listasNumeros = [];
let quantidadeDeNumeros;
let limiteInferior;
let limiteSuperior;
let calculo = limiteSuperior - limiteInferior

function sortear() {
    quantidadeDeNumeros = parseInt(document.getElementById('quantidade').value);
    limiteInferior = parseInt(document.getElementById('de').value);
    limiteSuperior = parseInt(document.getElementById('ate').value);
let numero
    
    for (let i = 0; i < quantidadeDeNumeros; i++) {
        numero = gerarNumeros(limiteInferior, limiteSuperior);

        while(listasNumeros.includes(numero)) {
            numero = gerarNumeros(limiteInferior,limiteSuperior);        
        }
        listasNumeros.push(numero);
    }
    console.log(listasNumeros);
    let resultado = document.getElementById('resultado');
    resultado.innerHTML =  `<label class="texto__paragrafo">Números sorteados: ${listasNumeros}  </label>`
    alterarStatusBotao();
}

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

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
solução!

Oi, Rony! Como vai?

Gostei de como você estruturou a função sortear(), garantindo que os números não se repitam. No entanto, percebi que na função gerarNumeros(), o valor máximo pode estar sendo ultrapassado por 1. Isso acontece porque o cálculo está somando 1 ao intervalo, mas o Math.random() já gera um valor até 0.999..., o que pode levar a um número maior que o limite.

Veja este exemplo corrigido:

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

Isso garante que o número gerado fique dentro do intervalo definido.

Conte com o apoio do Fórum na sua jornada.