Quando eu tento sortear muitos números, tipo uns 10, a aplicação trava. Tenho que fechar a página e abrir de novo e fazer testes com números menores. Se eu tenho sortear 4 números entre 1 e 6, também trava.
O botão reiniciar, toda vez que clico, ele muda de classe. Mas quando ele está cinza, não deveria mudar de classe (de cor) quando é clicado não é? Toda vez que eu clico em sortear ou reinicar, o botão reiniciar muda. Como posso corrigir isso?
function sortear() {
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("O número inicial tem que ser menor que o número final.");
return;
}
if (quantidade > de + ate) {
alert("A quantidade de números tem que ser menor que o intervalo escolhido.");
return;
}
let numerosSorteados = [];
let numero;
for(let i = 0; i < quantidade; i++) {
numero = gerarNumeroAleatorio(de,ate);
while(numerosSorteados.includes(numero)){
gerarNumeroAleatorio(de,ate);
}
numerosSorteados.push(numero);
}
let resultado = document.getElementById('resultado');
resultado.innerHTML = `<label class="texto__paragrafo">Números sorteados: ${numerosSorteados}.</label>`;
alterarStatusDoBotao();
};
function gerarNumeroAleatorio (min,max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
};
function alterarStatusDoBotao() {
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>';
alterarStatusDoBotao();
}