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 :)
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
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ú.
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
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
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.
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.
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?
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!
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
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
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 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.
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.
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
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!
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
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 😀 😀
@@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.
@@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
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.
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 :)
excelente, duda despejadísima gracias
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
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” 😂
@@DesarrolloUtil
Jjjjjjj
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ú.
Que sencillo lo hacen ver... muchas gracias chicos!!!
Gracias a ti por el apoyo!! 😁
Gracias por le video!
Buenisimooo
Un vídeo genial. Una cosa como haces los comentarios de la funcion con los parámetros.
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
Que bueno!!!
Muchas gracias Jorge 😉
Muy bueno, saludos
Gracias! 😊
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
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!
ese es mi josesito ¡como lo quiero!
Ahí vamos 😂
muy buen vídeo!!
Tienes buenos videos, cortos y explicas bien, gracias
1:47 Función que ejecuta "jeugo" 😁😁😁😁
La dislexia es fuerte en este canal... Jajaja
Excelente video crack, continua siempre con tu contenido!! -- ojala pronto puedas hacer una saga de typeScript :)
Después de verano seguro!
ooooooh que grande, tremendo epico, gracias gracias gracias ♥
Muchas gracias Dei!
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.
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.
Porque lo digo yo! y ya está jaja
Este vídeo es genial... because yes!
Muchas gracias!
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?
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!
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
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
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.
Totalmente cierto, el problema es que muchas veces, los algoritmos obligan a poner este tipo de títulos
@@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.
@@DesarrolloUtil Igualmente José, yo creo que aportas mucho con tu contenido. Te has ganado un seguidor ;)
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!
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.
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
@@DesarrolloUtil Muchísimas gracias!! Ahora lo miro :)
Crack
Me hace mucho ruido tanto return, no es mejor guardar en valor de salida en una variable y luego solo usar un return?
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!
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
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 😀 😀
@@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.
@@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
GAME_RULES[ ][ ] ???????? como se puede acceder a un objeto así.
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.
Bueno pero si empatan, player2 siempre va a ganar, aunque ese no es el objetivo del video, se entendio
Si te fijas, hay un if en la línea 29 que controla el caso de empate. Diría que funciona bien, vaya 😄
jeje cepillarme ...
A mi esto me da error en typescript 🤔.
Tienes bien planteados los tipos? Deberías utilizar un Record
@@DesarrolloUtil Ya lo pude arreglar, tenía tanto sueño que no me di cuenta que estaba usando interface en vez de types.
Es muy avanzado para mi, debería pasar por otro antes.
Por aquí tienes un poco de todo!