1
resposta

Mão na massa: proteção na entrada de valores

*/ continuo defendendo  o uso do Const, ele é mais seguro! */

const MINIMO = 1;
const MAXIMO = 100;

function sortear() {
  const quantidade: number = parseInt(document.getElementById('quantidade').value, 10);
  const de: number = parseInt(document.getElementById('de').value, 10);
  const ate: number = parseInt(document.getElementById('ate').value, 10);

  if (!validarEntrada(quantidade, de, ate)) {
    exibirErro('Valores inválidos. Por favor, revise os números inseridos e refaça o sorteio.');
    return;
  }

  const sorteados = new Set();

  while (sorteados.size < quantidade) {
    const numero = gerarNumeroAleatorio(de, ate);
    sorteados.add(numero);
  }

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

function validarEntrada(quantidade, de, ate) {
  return (
    Number.isInteger(quantidade) &&
    Number.isInteger(de) &&
    Number.isInteger(ate) &&
    quantidade > 0 &&
    de >= MINIMO &&
    ate <= MAXIMO &&
    de < ate
  );
}

function exibirErro(mensagem) {
  const erro = document.getElementById('erro');
  erro.textContent = mensagem;
  erro.classList.remove('escondido');
}

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

Oi, Ricardo! Tudo bem?

Excelente código, parabéns pelo projeto! Espero que esteja gostando do curso! Colocar em execução as atividades propostas pelo professor em aula é uma prática muito importante para internalizarmos o conteúdo. Caso tenha ficado alguma dúvida em relação ao curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!