Estou com um problema bem chato, que está atrapalhando para a conclusão das tarefas, e não sei mais o que fazer para resolver, começou após configurar o botão "reiniciar" e não parou mais, com ou sem a função de reiniciar o botão. Ao usar os números 1, 10 ou 5, e clicar em sortear, a aplicação no navegador simplesmente congela, me obrigando a fechar o navegador a brir novamente, isso aconteceu no Mozilla, no Edge e no Chrome, alguém consegue me ajudar? Meu código esta assim:
function sortear() {
let quantidade = parseInt(document.getElementById('quantidade').value); //.value é usado para pegar o valor do elemento digitado no id "quantidade" lá no HTML
let de = parseInt(document.getElementById('de').value); // faz a mesma coisa que o anterior, e o seguinte, com seu respectivo id la no HTML
let ate = parseInt(document.getElementById('ate').value);
let sorteados = []; // uma lista (ou um Array), criado para armazenar os numeros sorteados
let numeros;
if(quantidade > ate || de > ate) {
alert('A quantidade de sorteados não pode exceder o número máximxo de participantes, assim como o número máximo não pode ser menor do que o número inicial!');
return;
}
for (let i = 0; i < quantidade; i++) { //criado um loop for para determinar que, a variável i = 0, enquanto (representado pelo ;) i for menor que a variável quantidade, some um ao i (representado pelo i++)
numeros = sortearNumero(de, ate); // aqui a variável números (declarada acima) está recebendo o valor da função sortearNumero com parametros declarados como "de" e "ate" que são as funções declaradas que capturam os inputs de limite minimo e máximo digitados
while(sorteados.includes(numeros)) { //loop while está sendo usado dentro do for para repetir a função de sortear numero enquanto dentro da lista estiver incluso um numero que ja foi sorteado anteriormente
numero = sortearNumero(de, ate);
}
sorteados.push(numeros); // aqui estamos usando o .push(numeros) para guardar o valor obtido pela função de sortear que foi chamada acima e que está dando valor à função "numeros"
}
console.log(sorteados);
let resultado = document.getElementById('resultado');
resultado.innerHTML = `<label class="texto__paragrafo">Números sorteados: ${sorteados}, </label>`
alterarBotao();
}
function sortearNumero(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function alterarBotao() {
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('de').value = '';
document.getElementById('quantidade').value = '';
document.getElementById('ate').value = '';
document.getElementById('resultado').innerHTML = ' <label class="texto__paragrafo">Números sorteados: nenhum até agora</label>';
alterarBotao();
}