Olá, Matheus! Tudo bem?
O problema que você está enfrentando parece estar relacionado ao comportamento recursivo da função numeroAleatorio
.
Quando você chama a função sem retornar o resultado (numeroAleatorio()
em vez de return numeroAleatorio()
), a recursão continua sem retornar o valor correto para a chamada anterior. Isso pode levar a um comportamento inesperado, como o retorno de valores fora do intervalo desejado.
Na sua função numeroAleatorio
, quando um número já sorteado é encontrado, você faz uma chamada recursiva para numeroAleatorio()
. Se você não usar return
nessa chamada recursiva, o valor retornado pela chamada recursiva não será propagado para a chamada original, resultando em um comportamento imprevisível.
Certifique-se de sempre usar return
ao chamar a função recursivamente:
function numeroAleatorio() {
let numeroEscolhido = parseInt(Math.random() * 10) + 1;
if (numerosJaSorteados.includes(numeroEscolhido)) {
return numeroAleatorio(); // Use return aqui
} else {
numerosJaSorteados.push(numeroEscolhido);
console.log(numerosJaSorteados);
return numeroEscolhido;
}
}
Dessa forma, o valor correto será retornado e propagado para todas as chamadas recursivas anteriores.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.