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] La función sorteo no devuelve un valor

Hola gente! La función sorteo me devuelve NaN y de tipo number, no entiendo que esta mal.

<script>
        function saltarLinea() {
            document.write("<br><br>");
        }

        function imprimir(mensaje) {
            document.write(mensaje);
            saltarLinea();
        }

        function sorteo(num){
            return Math.round(Math.round()*num);
        }

        let n = parseInt(prompt("Ingrese el maximo valor"));
        let numero_pensado = sorteo(n);
        console.log(numero_pensado, typeof(numero_pensado));
        let numero_lanzado = parseInt(prompt("Ingrese un número entre 0 y " + n));

        if(numero_lanzado == numero_pensado){
            imprimir("Felicitaciones!!! Acertó");
        } else if(numero_lanzado > numero_pensado){
            imprimir("Erró: el número pensado " + numero_pensado + " es mayor que " + numero_lanzado);
        } else {
            imprimir("Erró: el número pensado " + numero_pensado + " es menor que " + numero_lanzado);
        }
    </script>
3 respuestas

Hola, en esta linea escribiste doble "Math.round"

function sorteo(num){
            return Math.round(Math.round()*num);
        }

deberia ser


"return Math.round(Math.random() * num);"

y deberia existir una validaciòn de entrada que verifique que el dato ingresado realmente sea un número.

Si usas las herramientas de desarrollador te dirá que el error te lo está dando la línea 17 -> console.log(numeropensado, typeof(numeropensado));

Sin embargo, un error, que yo creo que se nos puede pasar a varios jaja, fue cuando hiciste la función de sorteo. Supongo que fue por copiar y pegar, pero ahí se te fue poner random en lugar de round. -> return Math.round(Math.round()* num); -> return Math.round(Math.random()* num);

Al cambiarlo ya funciona tu código ٩(。•́‿•̀。)۶

solución!

Gracias Edher y Sofia por las observaciones y sugerencias!!! Ya encontré la solución:

function sorteo(num){
            if (isNaN(num)){
                return 0;
            } else {
                return Math.round(Math.random()*num);
            }            
}