Entendi que a variável "segredos" fora da função sorteiaNumeros é diferente da variável com o mesmo nome dentro dela. Porém na função verifica() usamos o laço de repetição for em que usamos a variável segredos para percorrer o array. Como a função "sabe" que estamos percorrendo o "segredos" que está recebendo o retorno da função sorteiaNumeros, já que dentro da função verifica() não declaramos a variável "segredos" ? Ficou confuso mas tentei ser o mais assertivo possível na explicação da dúvida. Obrigado!
function sorteiaNumeros(quantidade) {
var segredos = [];
var numero = 1;
while(numero <= quantidade) {
var numeroAleatorio = sorteia();
var achou = false;
if (numeroAleatorio !== 0) {
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(segredos[posicao] == numeroAleatorio){
achou = true;
break;
}
}
if (achou == false) {
segredos.push(numeroAleatorio);
numero++;
}
}
}
return segredos;
}
var segredos = sorteiaNumeros(3);
console.log(segredos);
var input = document.querySelector("input");
input.focus();
function verifica() {
var achou = false;
for(var posicao = 0; posicao < segredos.length; posicao++) {
if(input.value == segredos[posicao]) {
alert("Você ACERTOU!");
achou = true;
break;
}
}
if(achou == false) {
alert("Você ERROU!");
}
input.value = "";
input.focus();
}
var button = document.querySelector("button");
button.onclick = verifica;