Oi, Carolina. Tudo bem?
Você está bem próxima da solução, mas parece que aplicou uma lógica inversa.
No começo do for loop
o Array sorteados
ainda não possui elementos, logo o seu length
é igual a zero.
Já a quantidade
é iniciada com um valor positivo (eu espero rs).
Então, a sua condição, quantidade > sorteados.length
, deve ser sempre verdadeira.
O ideal seria:
- Definir a condição que causa um loop infinito;
- Impedir que o código execute o
while
loop quando essa condição for verdadeira; e - Alertar o usuário para corrigir os números inseridos.
// ...
if (condição que causa loop infinito) {
alert("A quantidade de números sorteados precisa ser inferior a (algum intervalo)");
return "Escolha outro intervalo";
}
for (let i = 0; i < quantidade; i++) {
numero = obterNumeroAleatorio(de, ate);
while (sorteados.includes(numero)) {
numero = obterNumeroAleatorio(de, ate);
}
sorteados.push(numero);
}
//...
Happy coding!