Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Duda] Que tan correcto es hacer esto?

Hola buenas tardes, quisiera me ayudaran con su opinion; yo pause el video y trate de hacer el código con lo que he ido aprendiendo, sin embargo, al terminar y checar con el video veo que hemos diferido en varios puntos, pero mi duda principal es: ¿qué tan correcto es que una función no te retorne algo, sino que ejecute un procedimiento?, por ejemplo, lo que hice en este caso es que mi función llenara mi arreglo que definí afuera de las funciones, y ya en el la ejecución del programa al dar clic al botón me pide el número de elementos para meter al arreglo, el cual lo introduce a la función; lo que pasa es que veo que el video la función retorna el arreglo como tal, entonces no se si debería cambiar la forma en la que pienso el asunto. Aqui les dejo mi código:

<meta charset="utf-8">
<input />
<button>Verificar si acerto con el secreto</button>

<script>
    //declaracion de variables
    var secretos = [];
    var input = document.querySelector("input");
    var boton = document.querySelector("button");


    //Definicion de funciones

    function creaArreglo(Cantidad) {
        for (var cantidadFor = 0; cantidadFor < Cantidad; cantidadFor++) {
            secretos.push(Math.round(Math.random() * 20))
        }
    }

    function verificar() {
        var acertar = false;
        for (var posicion = 0; posicion < secretos.length; posicion++) {
            if (secretos[posicion] == parseInt(input.value)) {
                alert("ACERTASTE");
                acertar = true;
                break;
            }
        }
        if (acertar == false) {
            alert("FALLASTE");
        }
        input.value = "";
        input.focus();
    }
    input.focus();
    boton.onclick = creaArreglo(parseInt(prompt("Cuantos numeros secretos quieres agregar?")));
    alert(secretos);
    boton.onclick = verificar;
</script>
1 respuesta

¡Hola Mario! Gracias por compartir tu código y hacer tu pregunta. En cuanto a tu duda, es correcto que una función no retorne nada y solo ejecute un procedimiento. En tu caso, la función creaArreglo llena el arreglo secretos y no retorna nada, lo cual está bien.

En cuanto a la diferencia con el video, es posible que en el video se haya optado por retornar el arreglo para poder utilizarlo en otra parte del código. En tu caso, como el arreglo está definido afuera de las funciones, no es necesario retornarlo.

Por último, una recomendación sería que en lugar de utilizar el prompt para pedir la cantidad de números secretos que se quieren agregar, podrías hacerlo a través del input del usuario en la página. De esta forma, el usuario puede ingresar la cantidad directamente en la página y no es necesario utilizar el prompt.

Espero haber ayudado y buenos estudios!