Falta pouco!

0 dias

0 horas

0 min

0 seg

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

porque meu código não funciona que nem o da aula?

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úmeros 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');

eu fiz tudo isso que nem o da aula, o do HTML e CSS eu nem mexi, posso mandar aqui se precisar

1 resposta
solução!

Oii Carlos. Tudo bem?

Dá pra ver dois (na real, três) probleminhas no seu código:

  1. ParseInt → o correto é parseInt (tudo minúsculo).
  2. while (sorteados.includes(numero)); → esse ; no fim faz um laço vazio infinito quando o número já existe (e o numero nunca muda dentro do while).
  3. Seu trecho alterarStatusBotao() está cortado/faltando chaves de fechamento no código que você colou.

Abaixo fiz umas correções

<script>
function sortear() {
  const quantidade = parseInt(document.getElementById('quantidade').value, 10);
  const de         = parseInt(document.getElementById('de').value, 10);
  const ate        = parseInt(document.getElementById('ate').value, 10);

  // Validações básicas
  if (Number.isNaN(quantidade) || Number.isNaN(de) || Number.isNaN(ate)) {
    alert('Preencha todos os campos com números válidos.');
    return;
  }
  if (de > ate) {
    alert('O valor "de" não pode ser maior que "até".');
    return;
  }
  const totalPossiveis = ate - de + 1;
  if (quantidade > totalPossiveis) {
    alert(`Quantidade (${quantidade}) maior que o total possível de números únicos no intervalo (${totalPossiveis}).`);
    return;
  }

  const sorteados = [];
  while (sorteados.length < quantidade) {
    let numero = obterNumeroAleatorio(de, ate);
    // repete enquanto já existir
    while (sorteados.includes(numero)) {
      numero = obterNumeroAleatorio(de, ate);
    }
    sorteados.push(numero);
  }

  const resultado = document.getElementById('resultado');
  resultado.innerHTML = `<label class="texto__paragrafo">Números sorteados: ${sorteados.join(', ')}</label>`;

  alterarStatusBotao();
}

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

function alterarStatusBotao() {
  const botao = document.getElementById('btn-reiniciar');
  if (botao && botao.classList.contains('container__botao-desabilitado')) {
    botao.classList.remove('container__botao-desabilitado');
  }
}
</script>

Se quiser, cola aqui seu HTML dos inputs/botão também que eu confiro os ids e deixo tudo redondinho.

Um abraço e bons estudos.