Quise irme por mi propio camino y basándome en lo que decía el Instructor de VALIDAR DUPLICADOS, en lugar de hacerlo con WHILE justamente como se mostraba en el vídeo, yo lo intenté a través de FOR, funcionándome, claro, pero la cuestión es que los duplicados si bien sólo los toma una vez más no repite el loop para llenar los espacios del Array. Me gustaría saber cómo solucionarlo desde el FOR, puesto que él mismo lo comentaba en el vídeo, sin embargo era con la sentencia WHILE y lo solucionaba ingresando el "contador++" dentro del último "else".
Bloque de Código:
<meta charset="utf-8">
<h1>JUEGO SECRETO O.O</h1>
<input></input>
<button>Verificar acierto o.O</button>
<script>
function aleatorio(){
return Math.round(Math.random()*10);
}
function sortearNumeros(length){
var secretsF = [];
for(var contador = 1;contador <= length; contador++){
var numeroAleatorio = aleatorio();
var encontrado = false;
console.log(numeroAleatorio);
for(var posicion = 0;posicion < secretsF.length; posicion++){
if(numeroAleatorio == secretsF[posicion]){
encontrado = true;
break;
}
}
if(encontrado == false){
secretsF.push(numeroAleatorio);
}
}
return secretsF;
}
console.log();
var secrets = sortearNumeros(4);
var input = document.querySelector("input");
input.focus();
function verificar (){
var encontrado = false;
for(var posicion = 0; posicion < secrets.length; posicion++){
if (parseInt(input.value) == secrets[posicion]){
alert("Ud ha acertado.");
encontrado = true;
break;
}
}
if(encontrado == false){
alert("Ud ha errado.");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verificar;
</script>