Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Recursividad, necesitaria el return o es opcional?

function generarNumeroSecreto() {
    let numeroGenerado =  Math.floor(Math.random()*numeroMaximo)+1;

    console.log(numeroGenerado);
    console.log(listaNumerosSorteados);
    //Si ya sorteamos todos los números
    if (listaNumerosSorteados.length == numeroMaximo) {
        asignarTextoElemento('p','Ya se sortearon todos los números posibles');
        return;   // esta linea la coloque y de la pregunta-
    } else {
        //Si el numero generado está incluido en la lista 
        if (listaNumerosSorteados.includes(numeroGenerado)) {
            return generarNumeroSecreto();
        } else {
            listaNumerosSorteados.push(numeroGenerado);
            return numeroGenerado;
        }
    }
}
2 respuestas

Hola Rene, en este caso no es necesario puesto que ha llegado a la ultima condición o condición base cuando la lista esta llena y no hay mas intentos. Al llegar a esta condición actuaria como una función que no devuelve nada como ya hemos visto y terminaría su ejecución para volver a la ejecución principal. De mi punto de vista, lo recomendable seria colocar un return false; o return -1; para dejar explicito que termino y la lista esta llena. El return; sin parametros devuelve undefined. Y si dejamos la funcion como estaba orignalmente (sin el return) tambien devuelve un undefined si queremos leerla. Saludos, espero haber sido de ayuda.

Buen día Rene!

En tu caso no es necesario porque tienes un else, pero lo deberías dejar si le retiras el else de la condición if (listaNumerosSorteados.length == numeroMaximo). Lo que hace el return es salir de la función, y no ejecuta ninguna otra instrucción que esté más abajo.