Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
3
respuestas

[Duda] Error en if else

Hola buenas tardes estaba haciendo el curso de lógica e la programación listas y funciones en el video numero 4 de listas me esta dando un error al usar el if cabe mencionar que hecho todo lo que indica el video pero me gustaría saber como resolverlo Este es el error app.js:37 Uncaught ReferenceError: Cannot access 'listaNumerosSorteados' before initialization at generarNumeroSecreto (app.js:37:6) at app.js:1:21

y este es el código, agradecería mucho que me ayudaran a resolverlo

let numeroSecreto = generarNumeroSecreto(); let intentos = 1; let listaNumerosSorteados = [];

function asignaTexoElemento(elemento, texto){ let elementoHTML = document.querySelector(elemento); elementoHTML.innerHTML = texto; return; }

function verificarIntento() { let numerDeUsuario = parseInt(document.getElementById('valorUsuario').value); //console.log(intentos); if (numerDeUsuario === numeroSecreto){ asignaTexoElemento('p', Acertaste el numero en ${intentos} ${(intentos === 1) ? 'vez' : 'veces'}); document.getElementById('reiniciar').removeAttribute('disabled'); } else { //El usuario no acerto if(numerDeUsuario > numeroSecreto){ asignaTexoElemento('p', 'El numero secreti es menor'); } else { asignaTexoElemento('p', 'El numero secreto es mayor'); } } intentos++; limpiarCaja(); }

function limpiarCaja(){ document.querySelector('#valorUsuario').value='';

}

function generarNumeroSecreto() { let numeroGenerado = Math.floor(Math.random()*10)+1; //si el numero generado esat en la lista if(listaNumerosSorteados.includes(numeroGenerado)) { return generarNumeroSecreto(); }else{ listaNumerosSorteados.push(numeroGenerado); return numeroGenerado; } }

function condicionesIniciales() { asignaTexoElemento('h1', 'Juego del numero secreto'); asignaTexoElemento('p', 'Indica un número del 1 al 10'); numeroSecreto = generarNumeroSecreto(); intentos = 1; }

function reiniciarJuego() { //limpiar caja limpiarCaja(); //indicar mensaje de intervalo de números //generar numero aleatorio //Inicializar el numero de intentos condicionesIniciales(); //deshabilitar el boton de nuevo juego document.querySelector('#reiniciar').setAttribute('disabled', 'true'); }

condicionesIniciales();

3 respuestas
solución!

El problema es que en la primera línea del código, cuando declaras numeroSecreto, llamas a la función generarNumeroSecreto(), que utiliza el arreglo que todavía no está declarado, porque recién lo haces en la tercer línea. Prueba invirtiendo la declaración de esas dos variables.

Recordá que en la ejecución del código, el mismo se lee línea por línea de arriba hacia abajo, por eso las variables se declaran arriba de los llamados a las funciones que las utilizan.

Muchas gracias

muchas graicias ,tenia el mismo problema .