Tengo el código practicamente igual, solo q usé 2 for, en pocas ocaciones me devuelve un arreglo de 3 elementos, no deberia devolver siempre 4? si se repite un numero deberia volver a buscar otro hasta completar 4 elementos no? nose en que falla mi codigo si alguien me da una mano gracias.
<meta charset="utf-8">
<input/>
<button>Verificar si acertó con el secreto</button>
<script>
function aleatorio() {
return Math.round(Math.random() * 10);
}
function sortearNumeros(cant) {
var secretos = [];
var encontrado;
for (var i = 0; i < cant; i++) {
var numeroAleatorio = aleatorio();
console.log(numeroAleatorio);
encontrado = false;
for(var posicion = 0; posicion < secretos.length; posicion++) {
if(numeroAleatorio == secretos[posicion]){
encontrado = true;
break;
}
}
if(!encontrado) {
secretos.push(numeroAleatorio);
}
}
return secretos;
}
var secretos = sortearNumeros(4);
console.log(secretos);
var input = document.querySelector("input");
input.focus();
function verificar() {
var encontrado = false;
for(var i = 0; i < secretos.length; i++) {
if(parseInt(input.value) == secretos[i]) {
alert("Usted acertó");
encontrado = true;
break;
}
}
if(!encontrado) {
alert("Usted erró");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button")
button.onclick = verificar;
</script>