Buenos días. Intenté utilizar la función aleatorio() directamente, en vez de utilizar una variable para llamar a la función y me he dado cuenta que al utilizar la función aleatorio() directamente, me salen números aleatorios repetidos ejemplo: 2,5,5,8 y cuando actualizo de nuevo me salen 4,2,9,2, pero cuando llamo la función a través de una variable, no se repiten los números aleatorios y funcionan perfectamente ¿A qué se debe esto? Por favor explicadme. Gracias desde ya. Les comparto el código.
<meta charset="UTF-8">
<input/>
<button>Confirmar</button>
<script>
function aleatorio (){
return Math.round(Math.random()*10)
}
function sortearNumeros(cantidad){
secretos = [];
var contador = 1;
while (contador <= cantidad){
var numeroAleatorio = aleatorio();
var encontrado = false;
for (posicion = 0; posicion < secretos.length; posicion++){
if(numeroAleatorio == secretos[posicion]){
encontrado = true;
break;
}
}
if (encontrado == false){
secretos.push(numeroAleatorio);
contador++
}
}
return secretos
}
var secretos = sortearNumeros(4);
console.log(secretos)
var entrada = document.querySelector("input");
entrada.focus();
function confirma (){
var encontrado = false;
for(posicion = 0; posicion < secretos.length ; posicion++){
if(parseInt(entrada.value) == secretos[posicion]){
alert("Usted acertó!");
encontrado = true
break;
}
}
if(encontrado == false){
alert("Usted erró mi estimado!");
}
entrada.focus();
entrada.value="";
}
var button = document.querySelector("button");
button.onclick = confirma;
</script>