NO utilices SWITCH ⛔ ¿QUÉ ALTERNATIVAS hay? 🟡 Javascript AVANZADO

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 พ.ย. 2024

ความคิดเห็น • 62

  • @rodrigoalvarez4540
    @rodrigoalvarez4540 ปีที่แล้ว +3

    El switch es más eficiente, aunque tengas n casos, solo realiza una comprobación. Como toda instrucción hay que saber bien utilizarla y donde. :) Este es de los mejores canales que me he encontrado en youtube. Estoy haciendo todas sus listas de reproducción :)

  • @rafa18k1
    @rafa18k1 ปีที่แล้ว

    excelente, duda despejadísima gracias

  • @DorianDesings
    @DorianDesings 3 ปีที่แล้ว +9

    Muy buen vídeo!!
    P.D. El miedo lleva a la ira, la ira lleva al odio, el odio lleva al sufrimiento. Odiar el switch te llevará al lado oscuro, es inevitable jajajaja

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว +2

      Muchas gracias Dorian 😊
      PD: Yo también dejo frase del bueno de Yoda "El lado oscuro no es más fuerte, es el camino rápido, fácil y seductor” 😂

    • @PalestinianCode
      @PalestinianCode 3 ปีที่แล้ว

      @@DesarrolloUtil
      Jjjjjjj

  • @erickescalante8989
    @erickescalante8989 ปีที่แล้ว

    Amigo yo estoy esperando n un pequeño proyecto, y la IA me arrojo hacerlo con switch,,,,pero veo wue con POO seguro resultaría mas eficiente, según tu video. Debo ir a mi laptop a revisar. Muy bueno, saludos desde Perú.

  • @sebastianrc1976
    @sebastianrc1976 3 ปีที่แล้ว +1

    Que sencillo lo hacen ver... muchas gracias chicos!!!

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว

      Gracias a ti por el apoyo!! 😁

  • @josecasanova3502
    @josecasanova3502 ปีที่แล้ว

    Gracias por le video!

  • @adrianocana7102
    @adrianocana7102 3 ปีที่แล้ว +1

    Buenisimooo

  • @yamil3105
    @yamil3105 3 ปีที่แล้ว +1

    Un vídeo genial. Una cosa como haces los comentarios de la funcion con los parámetros.

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว +1

      El formato es JSDoc, si te preguntas porqué se me autocompleta es por esta extensión de VSCode.
      La extensión detecta los parámetros y el return que le pongas a la función y te autocompleta esa parte
      JSDoc -> jsdoc.app/
      Extensión -> marketplace.visualstudio.com/items?itemName=stevencl.addDocComments

  • @JorgeSanchez-yu9qs
    @JorgeSanchez-yu9qs 3 ปีที่แล้ว +1

    Que bueno!!!

  • @jakito122
    @jakito122 3 ปีที่แล้ว +1

    Muy bueno, saludos

  • @jsr6941
    @jsr6941 2 ปีที่แล้ว +3

    Pero eso no es una respuesta correcta de porque no usar switch, eso es reducir la lógica de ese problema en específico. El switch se puede seguir usando y va a depender de la lógica del programador que solución le da a un problema

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว

      Llevas toda la razón, plantearemos cambiar el título del vídeo porque como bien dices, no refleja la realidad.
      Muchas gracias por el comentario!

  • @elhenryyettas3929
    @elhenryyettas3929 2 ปีที่แล้ว +1

    ese es mi josesito ¡como lo quiero!

  • @davidfabian4828
    @davidfabian4828 3 ปีที่แล้ว

    muy buen vídeo!!

  • @ITALO070495
    @ITALO070495 2 ปีที่แล้ว

    Tienes buenos videos, cortos y explicas bien, gracias

  • @rr69sport69
    @rr69sport69 3 ปีที่แล้ว

    1:47 Función que ejecuta "jeugo" 😁😁😁😁

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว

      La dislexia es fuerte en este canal... Jajaja

  • @devianhernandez6180
    @devianhernandez6180 2 ปีที่แล้ว +1

    Excelente video crack, continua siempre con tu contenido!! -- ojala pronto puedas hacer una saga de typeScript :)

  • @x_y_z_y_x
    @x_y_z_y_x 2 ปีที่แล้ว

    ooooooh que grande, tremendo epico, gracias gracias gracias ♥

  • @eliazarlopez4183
    @eliazarlopez4183 3 ปีที่แล้ว

    super genial acabo de encontrar su canal que me lo recomendó TH-cam y ya me avente la mayoría de los videos de js claro ya teniendo bases y con ellos reforzando mis conocimientos en el lenguaje.
    Una pregunta recomendarían utilizar esa estructura si necesito ejecutar una función dependiendo del valor.
    Ejemplo
    Tengo 3 estatus ["SIN_ASIGNAR", "ASIGNADO", "SIN_TIEMPO"]
    por cada uno ejecutaría una función diferente es decir con la estructura de objeto quedaría algo como esto
    const ESTATUS_ACCION = {
    SIN_ASIGNAR: SinAsignar(),
    ASIGNADO: asignado(),
    SIN_TIEMPO: sinTiempo()
    }
    claro al momento hacer la llamada seria así
    ESTATUS_ACCION["SIN_ASIGNAR"]()
    Recomiendan eso o ¿Puedo seguir con el infierno de los switch?
    bueno sin mas que agregar reitero su excelente contenido
    un gran saludo desde México.
    espero y sigan creciendo.

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว +1

      Muchas gracias!
      Correcto, lo puedes utilizar así
      Te daría un pequeño apunte, lo que tienes que almacenar en esa estructura son las funciones, no su ejecución. Me explico:
      - Cuando escribes "asignado( )" estás ejecutando la función
      - Lo que debes guardar es "asignado" o bien "( ) => asignado( )", cualquiera de las dos es válida
      Si no lo haces así, en lugar de ejecutarse cuando toca, se va a ejecutar cuando crees la estructura.
      No sé si me he hecho entender, si no, cualquier duda aquí estamos.

  • @DKRunker
    @DKRunker 3 ปีที่แล้ว +1

    Porque lo digo yo! y ya está jaja

  • @dieguitto3528
    @dieguitto3528 2 ปีที่แล้ว

    Este vídeo es genial... because yes!

  • @cristianlaguna1158
    @cristianlaguna1158 3 ปีที่แล้ว

    Que buen video, reduce mucho el código y para una posible solución aplicando buenas practicas :)
    PDTA: en caso de que se quiera hacer de una forma algo diferente como por ejemplo => const GAME_RULES = {
    piedra: {opcion1: 'tijera', opcion2: 'papel'},
    .
    .
    .
    }
    se podrá hacer de la misma forma?

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว

      Claro, al final de lo que se tratan estos vídeos es de dar ideas, pero luego cada uno las aplica a su manera. Es buscar tu estilo, sin dejar de lado las buenas prácticas!

  • @juangonzalez1664
    @juangonzalez1664 ปีที่แล้ว

    Hola, puedes hacer un tuto de como tienes montado el VS Code con node para ver los resultados como vemos en video, he intentado configurarlo pero algo debo hacer mal, muchas gracias

    • @fidelaguilar9662
      @fidelaguilar9662 ปีที่แล้ว

      lo q hizo fue instalar nodemon y llamarlo con la opcion -q y en el archivo nodemo.jspn poner
      {
      "events": {
      "start": "cls || clear"
      }
      }
      y por ultimo puso la terminal en la derecha y uso en lugar de cmd powershell configurado para q no se muestre la ruta del PATH

  • @oroyajs
    @oroyajs 2 ปีที่แล้ว +1

    Yo creo que el título sería, deja de usar mal switch. Osea, no es que usar switch esté mal, el problema viene que no se entiende bien para qué usaría un switch. Para eso tenemos que entender que switch es un constructo para ejecutar acciones a casos directos, en los cuales no debería haber comparaciones o condicionales, más allá del caso que ingresa en la key. El tema es que muchos no entienden esto y se suele usar en estructuras que tienen otras bifurcaciones en su interior. Esto hace que tener un switch sea muy complejo. Es por eso que si vas a implementar un switch debes estar seguro que el código de adentro no debería escalar, con ello obtendras un código muy claro y limpio. Ahora, si querés hacer un juego de banderas, usar un switch sería una terrible idea.

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว +1

      Totalmente cierto, el problema es que muchas veces, los algoritmos obligan a poner este tipo de títulos

    • @oroyajs
      @oroyajs 2 ปีที่แล้ว

      @@DesarrolloUtil Tenés razón, pero esto lamentablemente genera una idea equivocada en las personas que siguen tutoriales, y luego ven a un compañero usando un switch y automáticamente piensan: "esto está mal" antes de analizar el contexto de la aplicación.

    • @oroyajs
      @oroyajs 2 ปีที่แล้ว

      @@DesarrolloUtil Igualmente José, yo creo que aportas mucho con tu contenido. Te has ganado un seguidor ;)

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว +1

      Se de lo que me hablas, y realmente llevas razón. Es algo que deberíamos plantearnos un poco todos los TH-camrs. Lo intentaremos tener en cuenta!

  • @maria17933
    @maria17933 2 ปีที่แล้ว

    Muchas gracias!! Tengo una duda de cómo sería si dentro de esas opciones hay otras más? Por ejemplo, quise hacer un ejercicio de loto que tenga en cuenta los números acertados del 1-5 con switch y a partir de eso si acertó o no la estrella con otro switch adentro. Pero me aparece error porque no puedo repetir la variable estrella en cada opción según el número acertado.

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว +2

      Buenas Marin, para el ejemplo de la lotería no sabría decirte porque desconozco el problema, para tu caso te diría que es más cómo tratar número a número e iterar.
      Te dejo aquí abajo 3 ejemplos de código muy sencillos, uno con switch anidado, la versión con objetos y un ejemplo muy sencillo de juego de lotería.
      Puedes ejecutarlos pulsando Run o modificarlos pulsando Fork.
      Switch anidado -> www.mycompiler.io/view/3MgzWMX
      Objeto -> www.mycompiler.io/view/31a4qG0
      Juego de lotería -> www.mycompiler.io/view/FinUAMy

    • @maria17933
      @maria17933 2 ปีที่แล้ว

      @@DesarrolloUtil Muchísimas gracias!! Ahora lo miro :)

  • @edgarantonio2190
    @edgarantonio2190 3 ปีที่แล้ว

    Crack

  • @ArmandoIbarraFernandez
    @ArmandoIbarraFernandez 2 ปีที่แล้ว

    Me hace mucho ruido tanto return, no es mejor guardar en valor de salida en una variable y luego solo usar un return?

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว

      Aunque se puede hacer, las buenas prácticas indican que se debe hacer con return. La razón es sencilla, una vez llegas al return, la función termina y no es necesario continuar evaluando el resto del código, simplificándolo bastante y evitando ejecutar varios ifs sin sentido!

  • @CHaNGoSo
    @CHaNGoSo 3 ปีที่แล้ว

    Os dejo una pregunta para pensar, dado un sistema que aleatoriamente asigna a player 1 y 2 PIEDRA, PAPEL, TIJERA...
    ... porque tiene más probabilidades de ganar el player2 en la práctica sin SWITCH?
    Dadle una pensada

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว

      Pues le hemos dado una vuelta y te diría que eso dependerá de como realices el cálculo aleatorio.
      Si usas math.random, delegas el cálculo aleatorio al navegador o motor, el cual no utiliza el código fuente (utiliza la fecha como seed), usan el algoritmo xorshift128+.
      Entonces lo que utilices como estructura para comparar, sea switch o un objeto, no afectará en nada a priori.
      Entiendo que la pregunta parte de que el calculo de las variables dependa en sí del código escrito y si utilizas switch habrá una mayor entropía en el cálculo, no obstante si no es por esto nos gustaría saber a que te refieres, porque la pregunta es muy interesante la verdad 😀 😀

    • @CHaNGoSo
      @CHaNGoSo 3 ปีที่แล้ว

      @@DesarrolloUtil fallo mío! me pasa por leer en diagonal, no ví la linea 29 (gestión de empate), sin ella el resultado tb es undefined y daría por ganador al player2, sorry la confusión, aunque la respuesta sobre la entropía ha sido top jaja.

    • @DesarrolloUtil
      @DesarrolloUtil  3 ปีที่แล้ว

      @@CHaNGoSo No problem xD, es que estuvimos explorando el cálculo aleatorio y la única explicación que se nos ocurrió fue esa. Digo lo mismo el cálculo aleatorio depende en cierta parte del codigo jaja.
      Igualmente muchas gracias por esa pregunta :D

  • @luchorap85
    @luchorap85 2 ปีที่แล้ว +1

    GAME_RULES[ ][ ] ???????? como se puede acceder a un objeto así.

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว +1

      Buenas Mr Robot, se puede acceder a cualquier propiedad de un objeto en Javascript de dos formas. La más conocida es la forma GAME_RULES.propiedad1.subpropiedad , pero de esta forma si nosotros tenemos en una variable el nombre de la propiedad no nos funcionará ya que de esta forma somos nosotros los que literalmente escribimos el nombre de la propiedad que accedemos.
      En el video cuando accedo por llaves [] lo hago porque tengo los nombres de las propiedades en variables y si escribes GAME_RULES[jugador1] y jugador1 tiene el valor propiedad1, estarás accediendo a GAME_RULES.propiedad1, de forma que obtienes el valor de la variable sin necesidad de escribirlo directamente en código.
      Espero que se haya entendido, cualquier duda nos comentas.

  • @NNEG4NN
    @NNEG4NN 2 ปีที่แล้ว

    Bueno pero si empatan, player2 siempre va a ganar, aunque ese no es el objetivo del video, se entendio

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว

      Si te fijas, hay un if en la línea 29 que controla el caso de empate. Diría que funciona bien, vaya 😄

  • @69leostereo
    @69leostereo 2 ปีที่แล้ว

    jeje cepillarme ...

  • @getseneko7004
    @getseneko7004 2 ปีที่แล้ว

    A mi esto me da error en typescript 🤔.

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว

      Tienes bien planteados los tipos? Deberías utilizar un Record

    • @getseneko7004
      @getseneko7004 2 ปีที่แล้ว

      @@DesarrolloUtil Ya lo pude arreglar, tenía tanto sueño que no me di cuenta que estaba usando interface en vez de types.

  • @depositoalebet1236
    @depositoalebet1236 2 ปีที่แล้ว

    Es muy avanzado para mi, debería pasar por otro antes.

    • @DesarrolloUtil
      @DesarrolloUtil  2 ปีที่แล้ว

      Por aquí tienes un poco de todo!