Ejemplo de cómo evitar repetir tu código

Sdílet
Vložit

Komentáře • 388

  • @JustAstra-Lx
    @JustAstra-Lx Před 26 dny +69

    Wow, que bien se siente entender algo que hace 1 mes no entendia, por fin entiendo los arrays 😂

    • @personal5882
      @personal5882 Před 14 dny +1

      Jaja me ha pasado últimamente varias veces, se siente muy gratificante ... Y al mismo tiempo uno piensa, "¿en esta tontería, invertí días de mi vida?"

    • @erosensei7968
      @erosensei7968 Před 8 dny

      👶

    • @Ramldr
      @Ramldr Před 14 hodinami

      X2

    • @bennymunoz9130
      @bennymunoz9130 Před 12 hodinami +1

      ami tambien
      hace 1 mes estoy seguro que no habria entendido pero entendi los 3 (y el tercero ni lo habria echo solo lo entendi por como voy escribiendo xDD)

  • @rovixen8668
    @rovixen8668 Před rokem +391

    para evitar el harcodeo, podrias hacer if(n=days.length) asi no tienes que cambiar la condicion si es que agregas mas entradas al array

    • @vidamrr
      @vidamrr  Před rokem +278

      Es correcto, varios me han hecho esa recomendación, el tema es que para efectos de este ejercicio no creo que en un futuro cercano se agreguen más días a la semana 😂

    • @rovixen8668
      @rovixen8668 Před rokem +54

      @@vidamrr bueno cierto 😐 yo digo nomas pa que los novatos no se acostumbren a fixear los limites 🥴

    • @rovixen8668
      @rovixen8668 Před rokem +7

      @federico fernandez correcto, hay que siempre estar atento a esos detalles

    • @dpeter1987
      @dpeter1987 Před rokem +9

      No creo que inventen más días a la semana ohhhh

    • @jos1327
      @jos1327 Před rokem +5

      que significa eso bro, voy a empezar la u y voy a seguir programacion... yo entiendo ese mensaje algo asi: si los numeros naturales menores a cero.... los numeros naturales mayores a ... lo demas no entiendo xd

  • @kevinbar98
    @kevinbar98 Před rokem +7

    La solución es correcta, pero a mí gusto lo haría implementando un diccionario de esta manera { 1:"lunes", 2:"martes"...}, Y usando la construcción basica de if o con operador ternario y sale un bonito one line code, pero complejo para los que no están acostumbrados a ese tipo de códigos "incomprensibles"

    • @darvil82
      @darvil82 Před rokem +2

      En JavaScript termina siendo exactamente lo mismo que un array, excepto que el índice empieza por 0. Por lo tanto te ahorras escribir cada clave.

    • @EliukBlau
      @EliukBlau Před 2 měsíci +4

      Si, se ahorra de escribir la clave, pero las estructuras de datos tienen semántica. Significan algo. Tener el valor de entrada y el valor de salida en una estructura tipo mapa, puede ayudar a tener una semántica unificada en esos datos. Imagina que de pronto, por cualquier motivo, piden adicionalmente que el valor 99 devuelva el día viernes. En el mapa bastaría agregar una nueva clave y ya. Mientras que para el array habría que agregar condicionales, o rellenar espacios vacíos en el array hasta el 99, etc.
      En general, siempre es mejor que las propias estructuras de datos mapeen también la lógica (en lo posible), y el código imperativo solo extraiga los datos de esas estructuras, sin lógicas extras.

    • @rodrigodamianorlando7268
      @rodrigodamianorlando7268 Před měsícem +2

      Los diccionarios son los más en cualquier leguaje y si los unís con enumeraciones, tenes código super limpio y entendible.

  • @_Holy_Lance_
    @_Holy_Lance_ Před 2 měsíci +17

    Depende el lenguaje también, en Java el switch es más performante porque hace el salto al puntero al string a nivel código binario saltándose desreferenciar el puntero al arreglo de String, sigue estando en O(1), pero de son menos pasos. Un abrazo.

    • @pablodm9
      @pablodm9 Před měsícem +3

      no creo que 7 strings vayan a ser un daño tremendo al performance. Hay que saber cuando vale la pensa optimizar

    • @_Holy_Lance_
      @_Holy_Lance_ Před měsícem +3

      @@pablodm9 Concuerdo, es un gran 'depende'. Pero como siempre tiran en los foros, la que va (cuando vale la pena optimizar) es hacer profiling, ver qué tarda y porqué, optimizar, profiling de nuevo y (pivotando si fue más lento cosa que puede pasar con optimizaciones muy finas, para) seguir así hasta que funcione como se espera.

  • @basketaom5481
    @basketaom5481 Před 7 dny

    Gran ejemplo. Gracias

  • @miguelangeladornaruiz9257
    @miguelangeladornaruiz9257 Před rokem +376

    Se puede hacer aún más corto:
    try {
    return days[n - 1]
    } catch {
    throw new Error("Out of range")
    }

    • @Rudxain
      @Rudxain Před rokem +80

      Depende del lenguaje. En Javascript, OutOfBounds no es un error, solo `undefined`

    • @damistard4444
      @damistard4444 Před rokem +3

      Ok

    • @jimfreecss6391
      @jimfreecss6391 Před rokem +2

      Que lenguaje es ese ? 👀

    • @gabrieldelgado3513
      @gabrieldelgado3513 Před rokem +7

      @@jimfreecss6391 JavaScript

    • @JmR.22
      @JmR.22 Před rokem +1

      @Bbzhitto Games comparte la idea por favor

  • @dairondanilo6067
    @dairondanilo6067 Před rokem +112

    No es mejor crear un objeto donde las Keys son números y los values los días de la semana ?

    • @HEADEAR4U
      @HEADEAR4U Před 7 měsíci +15

      Eso gasta mucha memoria

    •  Před 6 měsíci

      Un mapa perro ?

    • @EliukBlau
      @EliukBlau Před 2 měsíci +10

      "mucha memoria" para un mapa que, en este caso particular, tiene a lo más 7 elementos y que siempre va a ser pasado por referencia, nunca serán copias por valor... No hay que optimizar prematuramente. En este caso el gasto en memoria es mínimo.

    • @daniloespinozapino4865
      @daniloespinozapino4865 Před měsícem +5

      ​@@HEADEAR4U es irrelevante para pequeñas cantidades de datos, el mejor código en estos casos es el código más legible

    • @AlvaroALorite
      @AlvaroALorite Před 19 dny +2

      ​@@EliukBlau más aún cuando las alternativas, precisamente, gastan igual o más espacio en memoria al declarar los arrays, o los valores de las variables...

  • @Cesar.AugustoS
    @Cesar.AugustoS Před rokem +92

    Depende del lenguaje pero JS haría:
    function getWeekday(num) {
    const weekDays = ['Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo'];
    return weekDays[num] || new Error('Invalid weekday');
    }

    • @rubiusoficial
      @rubiusoficial Před rokem +27

      Buena, pero si pones como parámetro 1, un humano esperaría que le retorne lunes, pero como los índices empiezan en 0 en javascript va a retornar martes así que yo pondría
      return weekDays[num - 1]

    • @Cesar.AugustoS
      @Cesar.AugustoS Před rokem +5

      @@rubiusoficial oh sí, olvidé poner el - 1 😅

    • @emmanuelfernandochimilpach8190
      @emmanuelfernandochimilpach8190 Před rokem

      Y en phyton?

    • @josequispereyes347
      @josequispereyes347 Před rokem +3

      @@emmanuelfernandochimilpach8190
      def week(day):
      dicc={0:"Lunes",1:"Martes",2:"Miércoles",3:"Jueves",4:"Viernes",5:"Sábado",6:"Domingo"}
      if day 6:
      return "Error"
      else:
      return dicc[day]
      print(week(0))

    • @zeacon6463
      @zeacon6463 Před rokem

      const days =
      {lunes: () =>{todo1},
      martes: ()=>{todo2},
      ...
      }
      days["lunes"]()

  • @pelcox1681
    @pelcox1681 Před rokem +1

    Hermoso ejemplo!!

  • @leonardotroya2084
    @leonardotroya2084 Před měsícem

    excelente consejo, actulmente trabajo en optimizar mis programas, algo que he notado es la base de datos, sea una lista, tupla o diccionario, dependiendo de esto el programa puede volverse mas optimo

  • @gerardorivasdelgado2473
    @gerardorivasdelgado2473 Před rokem +1

    Wow, justamente estoy viendo patrones de diseño

  • @ElTibuGameplays
    @ElTibuGameplays Před rokem +1

    Para uno que va aprendiendo (como yo) es mejor aprenderse switch, pero ahora ya para ahorrar y más simplicidad, como lo pusiste al ultimo

  • @andresdavidpena9212
    @andresdavidpena9212 Před 25 dny

    una forma limpia y sencilla seria algo como esto: weekendDays = {1: 'lunes', 2: 'martes'}
    weekendDays[day] // for example weekendDays[1]

  • @IronSh4dow
    @IronSh4dow Před rokem

    Excelente, gracias por compartir.

  • @jmz-dev-td6ko
    @jmz-dev-td6ko Před 6 měsíci

    Muy bueno! Gracias!

  • @MariaSCarvajal
    @MariaSCarvajal Před 29 dny

    En mi opinión sacrificar legibilidad por no repetir líneas hace el código menos mantenible porque se convierte en código que da miedo tocar

  • @g0rbachov
    @g0rbachov Před rokem +1

    No es necesario lanzar una excepción si está fuera de range... si el usuario pasa el valor 8, devuelve "Lunes" usando el operador %... return (n%7)-1

    • @EliukBlau
      @EliukBlau Před 2 měsíci +3

      Depende de la semántica de la función. ¿Tiene sentido pasar, por ejemplo, 99, y que me siga devolviendo un día de la semana? La semántica de las funciones y sus parámetros siempre es contextual respecto a si, en su uso, tiene sentido ocuparlas de tal o cuál manera.

  • @CarlosRodriguez-ww1fv
    @CarlosRodriguez-ww1fv Před 11 dny

    en c# podrias usar un diccionario y hacerle un out var para sacar el dia de la semana segun su id

  • @FerDom
    @FerDom Před rokem

    que programa estás usando para señarar con tu cursor se ve útil.
    buen video gracias

  • @javiercastromarchant3906

    Se puede hacer aún más eficiente con un diccionario clave valor, así vas directo a la key y no tienes que hacer un loop 🔁

    • @vidamrr
      @vidamrr  Před rokem

      si, tambien es otra opcion, aunque igual el acceso es O(1) tanto para el diccionario como para el arreglo si se sabe el indice, sino el diccionario es mejor

    • @watpo__5440
      @watpo__5440 Před měsícem

      ¿Dónde está el loop?

  • @marcogarcia2910
    @marcogarcia2910 Před rokem +9

    Yo me voy con el switch, creo que es la opción más entendible además otros porgramadores tocaran ese código y pues tiene que ser entendible

  • @julianelsensei
    @julianelsensei Před rokem +1

    Con map también se simplificará

  • @higherstr
    @higherstr Před rokem +55

    Lo malo es que si no tienes suficiente conocimiento se te dificulta entenderlo

    • @MatroxSe
      @MatroxSe Před rokem +25

      Hay que seguir estudiando. Antes no era capaz de entender eso, ahora tampoco. Nah broma, ahora con el tiempo llevo de 2018 en el mundo de la programación y entiendo todo. Incluso se puede hacer aún más corto como dice un comentario de más arriba. El tiempo de estudio da sus frutos, ánimos!!

    • @zadkielgd5137
      @zadkielgd5137 Před rokem +1

      @@MatroxSe donde aprendiste tu?

    • @MatroxSe
      @MatroxSe Před rokem +5

      @@zadkielgd5137 La universidad me dió la base. Pero todo lo demás lo fui descubriendo. Por ejemplo yo me quise dedicar a ser FullStack y busqué en internet que era lo que necesitaba para formarme como FullStack y ahí fuí aprendiendo ciertos lenguajes

    • @ArmandoPineda4
      @ArmandoPineda4 Před 11 měsíci

      Soy

    • @NachitenRemix
      @NachitenRemix Před 10 měsíci +1

      Es bastante sencillo creo. Si no entendes literalmente un array y como acceder a él todavia te falta aprender. Es algo super basico.
      No lo digo de malo, es la verdad.

  • @walterdavila8805
    @walterdavila8805 Před 19 dny

    mejor un array de string y solo obtienes el dia por el indice, XDD

  • @elmetano
    @elmetano Před rokem +15

    Prefiero lo simple, aunque a veces sea más largo, pues alguien más en su momento deberá tocar el código

    • @imandrezz3399
      @imandrezz3399 Před rokem +3

      Pero lo simple no siempre es eficiente

    • @xr8102
      @xr8102 Před rokem +7

      @@imandrezz3399 Esto tampoco es eficiente para todos los casos, todo tiene un costo, usar varios if-elif-else cuesta menos memoria. Si trabajas con microprocesadores es mejor usar ese código largo a utilizar la otra opción.

    • @miketochan
      @miketochan Před rokem +1

      @@xr8102 Justo es lo que estuve viendo en unos retos de una página. Me esforcé en hacer código con las nuevas prestaciones del lenguaje y resultaban muy cositas en recursos y en tiempo. Pero cuando utilizaba una programación tipo lenguaje C (todo hecho a mano) resultaba más rápido y eficiente. Me pareció muy curioso eso porque yo creía que todas las funciones nuevas y especiales estaba bien optimizadas.

    • @YayoArellano
      @YayoArellano Před rokem +1

      @@imandrezz3399 y no siempre lo mas dificil es lo mas eficiente

    • @nakarukatoshi
      @nakarukatoshi Před rokem +2

      @@imandrezz3399 Precisamente en este caso el Switch es tanto lo más simple como lo más eficiente 😅

  • @friedrichvillegasmurillo9775

    evitaría el if y le haría funcional directamente

  • @AdrianRojas
    @AdrianRojas Před rokem

    Tambien se puede usar un patron strtategy.

  • @ErikCiau
    @ErikCiau Před rokem

    ¿Por que la necesidad de recorrer un array? creo que es mas simple y mantenible realizar un diccionario con ello
    const getDay = (day) => {
    const days = { 0: "Lunes", 1: "Martes", 2: "Miercoles", 3: "Jueves", 4: "Viernes", 5: "Sabado", 6: "Domingo" }
    return days[day] ?? "Out of the range"
    }
    Así si por x o y razón lunes ya no es 0 sino 1 o que ya no sea por numero sino por sus primeras 3 letras es sencillo cambiarle, al final siempre tendrás el mismo output

  • @manuelcordovadelacruz

    yo con else en la mochila:

  • @AlvaroALorite
    @AlvaroALorite Před 19 dny

    El código switch era más eficiente. Y de todas maneras con un enum (const) es mejor (Más legible, menos código, limita el rango de la variable porque viene oredefinido...), no?

  • @VladAndKeys
    @VladAndKeys Před rokem

    Muy buena que programa usa para marcar loss rectángulos verdes?

  • @TheWorstRPGChannel
    @TheWorstRPGChannel Před rokem

    La próxima vez empiezo a escribirlo medio mal y le pregunto a ChatGPT.

  • @MarceloAlarcon-tx6qe
    @MarceloAlarcon-tx6qe Před 10 měsíci

    Me parece que un objeto se vería más claro. Igual con un array se ve bien amigo felicidades

  • @leonoben.
    @leonoben. Před rokem

    muchas gracias
    :)

  • @Navn00
    @Navn00 Před rokem

    Cómo que la variable días es Let y no Const pues cuántos días más quedan por descubrir??

  • @EnBuenChileno.Gaming
    @EnBuenChileno.Gaming Před 9 měsíci +4

    Buena idea gracias!! En mi caso prefiero las estructuras mas primitivas como un switch o un if. Me resulta mas agradable de trabajar y de retomar.

  • @robledo.developer
    @robledo.developer Před rokem

    Buen video!

  • @amauryreyesbetances3639

    Iba a decir que simplmente usar un enum xd.

  • @krascheninnikoviam
    @krascheninnikoviam Před rokem

    Pero y si cada día tendrá un texto diferente ¿El if sería necesario?

  • @viveroz
    @viveroz Před rokem +2

    A veces es mejor tener mas líneas de codigo y que cualquiera pueda entenderlo a escribir cosas que en una semana ni tu sabes que hacian xD

    • @filosofiagaming6775
      @filosofiagaming6775 Před rokem

      Creo que por eso existen los comentarios, ademas es una opcion que agrega un POQUITO de seguridad a tu programa, mayor complejidad, mayor nivel de conocimiento se requiere para descifrarlo, asi funciona la base de un hackeo

  • @AlexisBleeding4
    @AlexisBleeding4 Před rokem +4

    Yo programo en C# lo quería es tener un diccionario Key Days, Value lunes martes etc. y asi lo manejas :)

    • @DavidPerez-Reostatico
      @DavidPerez-Reostatico Před rokem +3

      Estaba pensando en un Enum, pero supongo que por detrás es un diccionario
      Bien visto broder

    • @justinlu5730
      @justinlu5730 Před rokem +1

      @@DavidPerez-Reostatico Justo para esos casos donde se requiere una determinada cantidad de valores constantes se utiliza el Enum, buen pensado. 👍

  • @alexdevorigin1
    @alexdevorigin1 Před 10 měsíci

    Una vez le puse esto a unos cuantos dev y no supieron incluso hasta se puede hacer de otra manera con poo y if en foreach

  • @HebiRoom
    @HebiRoom Před 5 měsíci

    Don't you have dictionaries in JS?

  • @jorgefernandez559
    @jorgefernandez559 Před rokem +1

    tienes un error en el ciclo, tiene que ser mayor a 0 no a 1

  • @derlisruizdiaz
    @derlisruizdiaz Před rokem

    Colocarlo en un objeto también sería genial

  • @adanyanez8562
    @adanyanez8562 Před rokem

    Se puede solo con un objeto pasas el valor al prop y que regrese el value

  • @andresgomez4042
    @andresgomez4042 Před rokem +24

    Bro te doy un consejo, no respondas mensajes de haters, literalmente cada uno programa como se canta el viento del culo... Y no te rebajes al nivel de la gente que te dice que está mal, mal está si no funciona... Si no, importa poco y nada como esté hecho un código... Si vas a ser creador de contenido ocupate de buscar comentarios que aporten al canal, porque aunque no lo creas, das mucha más confianza y seriedad si ignoras a los bobos que se creen Anonymous en CZcams. Saludos

    • @vidamrr
      @vidamrr  Před rokem +2

      Exacto, gracias Andrés 👍🏻👍🏻

    • @4lfredEscorpi
      @4lfredEscorpi Před rokem

      @Andrés lo que dices de que cada uno programa como le venga es cierto si son para proyectos propios que nunca se hará pública . Si el hace contenido pues por cosas como estás ya se ve la calidad de profesional que es . Por qué cuando al futuro programes para el exterior y empresas de renombre , estos usan reglas y más cosas para el código . Y si pues uno hace lo que quiere no podrá adaptarse a esos estándares . Y pues el que hizo este video aclara sobre la eficiencia yo creo q con eso nadie diría nada verdad .

    • @NachitenRemix
      @NachitenRemix Před 10 měsíci +3

      "Si no, importa poco y nada como esté hecho un código".
      No es cierto, si vas a trabajar de esto si es importantisima la calidad de codigo. Garantiza mantenibilidad y extensibilidad a largo plazo. Si solo te de dedicas a aprender o hacer proyectos propios lo entiendo, pero para casos reales donde tendrás que interactuar con compañeros te recomiendo darle prioridad a la calidad. Es algo que es medible y objetivo, hay cosas que son subjetivas segun opinion personal pero hay muchas otras que no.

    • @xvimnt
      @xvimnt Před 29 dny

      No amigo, siempre se puede mejorar todo y no necesariamente te hacen un hater, es comunicación efectiva

  • @mandresblac
    @mandresblac Před rokem

    La condicion del if, que es: n < 1 || n > 7
    no se podria reemplazar por:
    n < days.length || n > days.length
    ??.

    • @JuanPabloSolorzanoMendoza
      @JuanPabloSolorzanoMendoza Před rokem

      no, si lo haces la condición se cumple con cualquier número positivo que pases en "n" al menos que sea igual al de la longitud del array

  • @MM-fc7ih
    @MM-fc7ih Před rokem

    ¿No es mejor poner la array dentro de la función?

  • @laxdermax
    @laxdermax Před rokem +1

    Agregar complejidad ciclomatica donde no se necesita?

  • @jaimepanchito1999
    @jaimepanchito1999 Před rokem

    Para eso estan los enum o dict, pero el ejemplo en si esta bien

  • @Powee
    @Powee Před rokem

    Disculpa, sabes como puedo hacer eso en c++

  • @AlvaroVR8
    @AlvaroVR8 Před rokem

    Más fácil con un diccionario, lo haces en una linea.

  • @jhonoquendo6163
    @jhonoquendo6163 Před rokem

    En typescript la otra opción sería usar un enum.

  • @alekvga
    @alekvga Před rokem

    También puedes crear un objeto
    function getDay(n){
    const map={
    "1":"lunes",
    "2":"martes",
    //Así para cada día
    }
    return map[n] ?? 'N/A'
    }

  • @Dutano876
    @Dutano876 Před rokem +1

    Todavía no he estudiado JavaScript pero, no es aún mejor idea hacer un diccionario?

    • @creepermanpro
      @creepermanpro Před rokem

      tecnicamente ya el array esta asociando numeros a cada valor (como lo hacen las tablas de hash), en este caso no hay necesidad de diccionario, a menos que necesites que te devuelvan los dias de la semana asociado a otros valores string.

  • @MarcelBK201
    @MarcelBK201 Před rokem

    He hecho alguna vez eso, ni idea que se llamaba así

  • @arceprog
    @arceprog Před rokem

    ¿como se llama ese mouse que usas ? Quiero dar una presentación y estaria bueno saberlo jaja

    • @vidamrr
      @vidamrr  Před rokem

      Es una app que hice especificamente para eso pero no esta publicada ni nada, si tienes WIndows me parece que hay una app para eso

  • @Junior_2023
    @Junior_2023 Před rokem

    Puedes hacerlo pero en python ?

  • @ibeliuso
    @ibeliuso Před rokem +19

    Un map, con clave-valor seria aun mas eficiente

    • @carlosduque5174
      @carlosduque5174 Před rokem +3

      No realmente. Acceder una llave en un mapa tiene coste O(1) y acceder un elemento en un array utilizando un indice también tiene un costo de O(1).

    • @darvil82
      @darvil82 Před rokem

      En cuanto a eficiencia, en JavaScript es exactamente igual de rápido. En otros lenguajes, la diferencia de tiempo acceso entre un valor de array y un hashmap es abismal (el array es obviamente más rápido)

  • @DaRkZThECriTiC
    @DaRkZThECriTiC Před 15 dny

    Yo he visto esos códigos horribles a mis compañeros con laptops para ingenieros de la nasa XD, y yo tenía un código mejorcito en mi i3 de 3ra generación de hace 11 años creo XD

  • @alvarito99dark
    @alvarito99dark Před rokem

    Enumerados llorando en la esquina viendo que no han sido usados.

  • @williamscastaneda6661
    @williamscastaneda6661 Před měsícem +1

    En todo caso mejor me armo un diccionario

  • @miltongutierrez3747
    @miltongutierrez3747 Před rokem

    Yo quitaría el for y solo accedería al Array por su index

  • @puchiflito1328
    @puchiflito1328 Před rokem

    Para que sirve la dos barra verticales?? Es para separar o para que?? Primera ves que veo

  • @mariocolon7782
    @mariocolon7782 Před rokem

    Que lenguaje es? Saludos.

  • @edsonramirez2580
    @edsonramirez2580 Před rokem

    interesante pero aveces la mayoria solo quiere simplificar codigo para tener menos lineas y no piensan en el costo de procesamiento ya eso depende para q se usa 😳

  • @otakteamproductions9239
    @otakteamproductions9239 Před 9 měsíci

    Es absurdo hacer arreglos por cada caso, ya que eso solo aumenta la "consulta". Bien puedes usar lo mas basico que es return true y el valor. Otro mas complejo y embebido es hacer arrays o class que se podra acceder a cualquier script y en cualquier codigo.
    public enum DiaSemana {
    LUNES, MARTES, MIÉRCOLES, JUEVES, VIERNES, SÁBADO, DOMINGO
    }
    class Program {
    static void Main() {
    int indice = 3;
    string texto = (Enum.IsDefined(typeof(DiaSemana), indice - 1))
    ? $"Hoy es {(DiaSemana)(indice - 1)}."
    : "Índice fuera de rango.";
    Console.WriteLine(texto);
    }
    }

  • @AventureroMexa
    @AventureroMexa Před rokem +16

    Creo que sería mejor para este caso manejarlo como un objeto
    const dias = {
    1 : “Lunes”,
    2: “Martes”,
    3: “Miércoles”,
    }
    console.log(dias[2]) // Martes
    Es más legible y escalable

    • @vidamrr
      @vidamrr  Před rokem +4

      Cuando un objeto tiene de clave valores numéricos consecutivos es mejor cambiarlo a un arreglo, pero en general funciona igual si declaras un objeto así, no es mas elegible

    • @AventureroMexa
      @AventureroMexa Před rokem

      @@vidamrrde esta manera que planteó, simplificas al no tener que usar una fórmula para obtener el índice correcto.

    • @randomprocastinator7890
      @randomprocastinator7890 Před rokem +3

      @@AventureroMexa creo que no tiene mucho sentido lo que dices, cuando usas por ejemplo los meses del año, sería mejor usar el arreglo o una tupla en caso que uses Python, y hacer lo que hace en este video, la fórmula se usa simplemente porque los índices no empiezan de 1, si no desde cero, por eso el return n-1

    • @AventureroMexa
      @AventureroMexa Před rokem

      @@randomprocastinator7890 yo se que los índices empiezan en cero por eso digo que ponerle un parche para que cuadre no es la mejor práctica, pero sabré yo, saludos

    • @deketh73
      @deketh73 Před rokem +4

      tiene más sentido un array, es redundante usar números solo porque no quieres poner -1

  • @elitgamaliel
    @elitgamaliel Před 5 dny

    una cuarta y mejor opcion un map con los dias key = 1 value = lunes... es mas practico

  • @cesarferrandopastor7901
    @cesarferrandopastor7901 Před rokem +1

    Como consumiría más Ram? Con el array o con un if o Switch ?

    • @vidamrr
      @vidamrr  Před rokem +1

      De ninguna forma, a nivel de eficiencia ninguno es más rápido o más lento, porque el acceso es bigO(1)

  • @josealfonsorc1187
    @josealfonsorc1187 Před rokem

    Pues sinceramente hace un año no le hubiera entendido. veo comentarios de que es muy dificil de entender. Pero depende del tiempo que lleves en esto.

  • @surflaweb
    @surflaweb Před rokem

    Un hashmap fixed

  • @jairpro1684
    @jairpro1684 Před rokem +1

    *El caballo se llama viernes*

  • @xDemorn
    @xDemorn Před rokem +2

    como se llama el tipo de fuente que usas? esta bonito

  • @Will.I.Am50
    @Will.I.Am50 Před rokem

    O mejor aún, un mapa donde la clave es un número y el valor es el día

  • @tulymano1
    @tulymano1 Před rokem

    factory + strategy para n casos y diferentes logicas

  • @rakzodya
    @rakzodya Před rokem

    buena esa.

  • @gorillaz3706
    @gorillaz3706 Před 8 měsíci

    pueden usar un for(int i=0; i>6;i++)

  • @YayoArellano
    @YayoArellano Před rokem +33

    Este video se deberia llamar: Como hacer tu codigo altamente dificil de entender simple vista

    • @vidamrr
      @vidamrr  Před rokem +12

      Me faltó hacerlo a nivel ensamblador para ponerlo más difícil jajajaja

    • @alefallas1677
      @alefallas1677 Před rokem

      Totalmente de acuerdo Yayo xD

    • @YayoArellano
      @YayoArellano Před rokem +3

      @Ezequiel Lozano Guerrero Es muy sencillo pero altamente dificil de entender a simple vista solo por ahorrate 1kb de memoria en disco duro

    • @hugobracamontesbaltazar
      @hugobracamontesbaltazar Před rokem +1

      @Ezequiel Lozano Guerrero No todos tienen tu nivel de entendimiento 🙄.

    • @pepeschwerter9847
      @pepeschwerter9847 Před rokem +1

      Esto es muy fácil de entender a simple vista si es que llevas un tiempo trabajando en programación

  • @chicharrero3884
    @chicharrero3884 Před rokem +8

    No lo habia pensado, gran tip

    • @dirknash4113
      @dirknash4113 Před rokem +5

      No, realmente no lo es. Es muy mala.
      Esta solución es limpia, pero es completamente ineficiente para el compilador.
      Es mucho mejor, definir un objeto constante del tipo:
      const week = {
      "1": "lunes",
      "2": "martes",
      ....
      }
      Y luego acceder así al objeto:
      week["1"]
      No declaras un array, no se reserva memoria de forma dinámica, no se realizan cálculos como ese n-1,
      No necesitas un try-catch que es súper ineficiente y no puedes obtener fallo al acceder , ya que retorna null si le pasas un valor inexistente.
      No os fíeis mucho de estos gurús de la programación que salen ahora por CZcams porque de un desarrollador a un ingeniero hay un siglo de dedicación y análisis.
      Y ya porque no has traducido a ensamblador ambos códigos, si no verías una diferencia brutal.
      La mejor opción es un switch sin ninguna duda. Es casi igual de eficiente que los if encadenados y es más limpio que esos ifs.

    •  Před rokem +1

      Es muy mala idea. Muy ineficiente

    • @dirknash4113
      @dirknash4113 Před rokem

      @ correcto

    • @puedeserpa2939
      @puedeserpa2939 Před rokem

      Un potip

  • @EdwardPhantomhive
    @EdwardPhantomhive Před rokem

    Sería muchísimo más rápido con un diccionario
    days_dict = { 1 : “lunes”, 2 : “martes”, etc..}
    try:
    print(days_dict[n])
    except ValueError as e:
    print(e)
    Recuerda que el tiempo de acceso de un diccionario es constante.

    • @watpo__5440
      @watpo__5440 Před měsícem

      El tiempo de acceso de un array también es constante

  • @brunot.a.6151
    @brunot.a.6151 Před rokem

    Y que tal usando el método map? También es posible ?

  • @iJuan12i
    @iJuan12i Před rokem +1

    Es mejor solo usar un objeto

  • @angelodangelo6711
    @angelodangelo6711 Před rokem +1

    Eso solo complica su mantenimiento y dificulta su lectura

    • @vidamrr
      @vidamrr  Před rokem +1

      Interesante, por qué es difícil de mantener? No es como que mañana agreguen otro mes al año

  • @guillermoalonsocotamurillo930

    No sería más fácil crear un ENUM y usar todo lo que incluye?

  • @rodycastro6637
    @rodycastro6637 Před rokem

    Yo lo implementaria de la siguiente forma:
    const getDayOfWeek = (day: number) => ({
    1: "lunes",
    2: "martes",
    3: "miercoles",
    4: "jueves",
    5: "viernes",
    6: "sabado",
    7: "domingo"
    }?.[day] || "Fuera de rango")

  • @EmilDeGuerreros
    @EmilDeGuerreros Před 26 dny

    prefiero switch y . me parece mas simple que un loop y condicionar y un array
    ademas switch estaa obtimizado para saltar a la direccion sin tener que probar los elementod uno por uno aunque este no es el mejor ejemplo.

  • @Ghousz
    @Ghousz Před rokem

    Esta es otra opción un poco más fácil:
    semana = ["Lunes","Martes","Miércoles","Jueves","Viernes"]
    numero = int(input("Ingrese un número del 1 al 5: "))
    resultado = semana.pop(numero-1)
    print(resultado)

    • @vidamrr
      @vidamrr  Před rokem +1

      O sea si está bien pero el escenario no está enfocado en ver cómo puedes obtener el día de la semana jajaja, sino cómo puedes simplificar la sintaxis. Ya dependiendo de cada escenario en las apps es que lo acomodas a cómo más te guste 👍🏻

    • @Ghousz
      @Ghousz Před rokem

      @@vidamrr Ah vale vale jaja gracias

  • @lalosporsche
    @lalosporsche Před 6 měsíci +1

    se podría usar un Enum?

  • @wilsoncastrillon5383
    @wilsoncastrillon5383 Před 11 měsíci

    Buena

  • @marioluque4786
    @marioluque4786 Před rokem

    Yo haría un map. Y retorno map[n] ?? 'Out of range'

  • @dragayt543
    @dragayt543 Před rokem

    Tengo una pregunta. ¿No sería mejor crear una función de flecha para escribir menos código y así retornar el mismo resultado?

    • @nestorrente
      @nestorrente Před rokem +1

      Realmente escribir menos código no siempre es mejor. Es cierto que en JS las constantes igualadas a una arrow function son bastante estándar, pero yo sigo prefiriendo utilizar named functions en esos casos. Mi argumento es que el código debe describirse a sí mismo de la mejor forma posible, y "function getDay(...)" cumple su trabajo ("esta es la función getDay"), mientras que "const getDays = (...)" es como decir "esta es la constante getDay, cuyo valor es una función". Para mi gusto, descriptivamente, es menos directo.

  • @__cpmarcelo
    @__cpmarcelo Před rokem

    Ponelo a un objeto, const obj = {1: "lunes", 2: "martes" } y llamas directo obj[n] me parece mejor práctica bro, saludos...

    • @darvil82
      @darvil82 Před rokem

      Especificar las claves numéricas es código innecesario, pues al final un array puede ser indexado directamente con el número.

  • @juanjoseramos3492
    @juanjoseramos3492 Před rokem

    Quien te conoce Array jajaja buen tip

  • @WolffOner
    @WolffOner Před rokem

    Usando un objeto en vez de switch y if statement tambien serviria?

  • @noobsitocph4292
    @noobsitocph4292 Před rokem

    Eso lo estoy viendo en mi clase de informática

  • @aquavxi6431
    @aquavxi6431 Před rokem +1

    Buen video! También consideraría crear una clase Enum con cada uno de los días y una función que retorne el name del valueOf del número indicado por parámetro. Sin olvidar el catch!

  • @4lfredEscorpi
    @4lfredEscorpi Před rokem

    Simplicidad vs eficiencia

  • @jovas951
    @jovas951 Před rokem

    ... luego refactorizas y usas un Map :)