Ejemplo de cómo evitar repetir tu código

แชร์
ฝัง

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

  • @JustAstra-Lx
    @JustAstra-Lx 26 วันที่ผ่านมา +69

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

    • @personal5882
      @personal5882 14 วันที่ผ่านมา +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 8 วันที่ผ่านมา

      👶

    • @Ramldr
      @Ramldr 10 ชั่วโมงที่ผ่านมา

      X2

    • @bennymunoz9130
      @bennymunoz9130 9 ชั่วโมงที่ผ่านมา +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 ปีที่แล้ว +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  ปีที่แล้ว +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 ปีที่แล้ว +54

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

    • @rovixen8668
      @rovixen8668 ปีที่แล้ว +7

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

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

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

    • @jos1327
      @jos1327 ปีที่แล้ว +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 ปีที่แล้ว +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 ปีที่แล้ว +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 2 หลายเดือนก่อน +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 หลายเดือนก่อน +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_ 2 หลายเดือนก่อน +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 หลายเดือนก่อน +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_ หลายเดือนก่อน +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 7 วันที่ผ่านมา

    Gran ejemplo. Gracias

  • @miguelangeladornaruiz9257
    @miguelangeladornaruiz9257 ปีที่แล้ว +376

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

    • @Rudxain
      @Rudxain ปีที่แล้ว +80

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

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

      Ok

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

      Que lenguaje es ese ? 👀

    • @gabrieldelgado3513
      @gabrieldelgado3513 ปีที่แล้ว +7

      @@jimfreecss6391 JavaScript

    • @JmR.22
      @JmR.22 ปีที่แล้ว +1

      @Bbzhitto Games comparte la idea por favor

  • @dairondanilo6067
    @dairondanilo6067 ปีที่แล้ว +112

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

    • @HEADEAR4U
      @HEADEAR4U 7 หลายเดือนก่อน +15

      Eso gasta mucha memoria

    •  6 หลายเดือนก่อน

      Un mapa perro ?

    • @EliukBlau
      @EliukBlau 2 หลายเดือนก่อน +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 หลายเดือนก่อน +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 19 วันที่ผ่านมา +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 ปีที่แล้ว +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 ปีที่แล้ว +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 ปีที่แล้ว +5

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

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

      Y en phyton?

    • @josequispereyes347
      @josequispereyes347 ปีที่แล้ว +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 ปีที่แล้ว

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

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

    Hermoso ejemplo!!

  • @leonardotroya2084
    @leonardotroya2084 หลายเดือนก่อน

    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 ปีที่แล้ว +1

    Wow, justamente estoy viendo patrones de diseño

  • @ElTibuGameplays
    @ElTibuGameplays ปีที่แล้ว +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 24 วันที่ผ่านมา

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

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

    Excelente, gracias por compartir.

  • @jmz-dev-td6ko
    @jmz-dev-td6ko 6 หลายเดือนก่อน

    Muy bueno! Gracias!

  • @MariaSCarvajal
    @MariaSCarvajal 29 วันที่ผ่านมา

    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

    • @alejandrobarraza646
      @alejandrobarraza646 28 วันที่ผ่านมา

      Pero es fácil de entender. Solo debe estar bien comentado

  • @g0rbachov
    @g0rbachov ปีที่แล้ว +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 2 หลายเดือนก่อน +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 11 วันที่ผ่านมา

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

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

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

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

    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  ปีที่แล้ว

      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 หลายเดือนก่อน

      ¿Dónde está el loop?

  • @marcogarcia2910
    @marcogarcia2910 ปีที่แล้ว +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 ปีที่แล้ว +1

    Con map también se simplificará

  • @higherstr
    @higherstr ปีที่แล้ว +55

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

    • @MatroxSe
      @MatroxSe ปีที่แล้ว +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 ปีที่แล้ว +1

      @@MatroxSe donde aprendiste tu?

    • @MatroxSe
      @MatroxSe ปีที่แล้ว +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 11 หลายเดือนก่อน

      Soy

    • @NachitenRemix
      @NachitenRemix 10 หลายเดือนก่อน +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 19 วันที่ผ่านมา

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

  • @elmetano
    @elmetano ปีที่แล้ว +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 ปีที่แล้ว +3

      Pero lo simple no siempre es eficiente

    • @xr8102
      @xr8102 ปีที่แล้ว +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 ปีที่แล้ว +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 ปีที่แล้ว +1

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

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

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

  • @friedrichvillegasmurillo9775
    @friedrichvillegasmurillo9775 28 วันที่ผ่านมา

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

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

    Tambien se puede usar un patron strtategy.

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

    ¿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
    @manuelcordovadelacruz 5 วันที่ผ่านมา

    yo con else en la mochila:

  • @AlvaroALorite
    @AlvaroALorite 19 วันที่ผ่านมา

    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 ปีที่แล้ว

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

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

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

  • @MarceloAlarcon-tx6qe
    @MarceloAlarcon-tx6qe 10 หลายเดือนก่อน

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

  • @leonoben.
    @leonoben. ปีที่แล้ว

    muchas gracias
    :)

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

    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 9 หลายเดือนก่อน +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 ปีที่แล้ว

    Buen video!

  • @amauryreyesbetances3639
    @amauryreyesbetances3639 12 วันที่ผ่านมา

    Iba a decir que simplmente usar un enum xd.

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

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

  • @viveroz
    @viveroz ปีที่แล้ว +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 ปีที่แล้ว

      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 ปีที่แล้ว +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 ปีที่แล้ว +3

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

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

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

  • @alexdevorigin1
    @alexdevorigin1 10 หลายเดือนก่อน

    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 5 หลายเดือนก่อน

    Don't you have dictionaries in JS?

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

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

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

    Colocarlo en un objeto también sería genial

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

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

  • @andresgomez4042
    @andresgomez4042 ปีที่แล้ว +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 TH-cam. Saludos

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

      Exacto, gracias Andrés 👍🏻👍🏻

    • @4lfredEscorpi
      @4lfredEscorpi ปีที่แล้ว

      @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 10 หลายเดือนก่อน +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 29 วันที่ผ่านมา

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

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

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

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

      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 ปีที่แล้ว

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

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

    Agregar complejidad ciclomatica donde no se necesita?

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

      xd en donde?

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

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

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

    Disculpa, sabes como puedo hacer eso en c++

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

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

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

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

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

    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 ปีที่แล้ว +1

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

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

      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 ปีที่แล้ว

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

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

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

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

      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 ปีที่แล้ว

    Puedes hacerlo pero en python ?

  • @ibeliuso
    @ibeliuso ปีที่แล้ว +19

    Un map, con clave-valor seria aun mas eficiente

    • @carlosduque5174
      @carlosduque5174 ปีที่แล้ว +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 ปีที่แล้ว

      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 15 วันที่ผ่านมา

    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 ปีที่แล้ว

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

  • @williamscastaneda6661
    @williamscastaneda6661 หลายเดือนก่อน +1

    En todo caso mejor me armo un diccionario

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

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

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

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

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

    Que lenguaje es? Saludos.

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

    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 9 หลายเดือนก่อน

    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 ปีที่แล้ว +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  ปีที่แล้ว +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 ปีที่แล้ว

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

    • @randomprocastinator7890
      @randomprocastinator7890 ปีที่แล้ว +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 ปีที่แล้ว

      @@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 ปีที่แล้ว +4

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

  • @elitgamaliel
    @elitgamaliel 5 วันที่ผ่านมา

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

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

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

    • @vidamrr
      @vidamrr  ปีที่แล้ว +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 ปีที่แล้ว

    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 ปีที่แล้ว

    Un hashmap fixed

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

    *El caballo se llama viernes*

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

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

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

      Es : jetbrains mono

  • @Will.I.Am50
    @Will.I.Am50 ปีที่แล้ว

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

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

    factory + strategy para n casos y diferentes logicas

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

    buena esa.

  • @gorillaz3706
    @gorillaz3706 8 หลายเดือนก่อน

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

  • @YayoArellano
    @YayoArellano ปีที่แล้ว +33

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

    • @vidamrr
      @vidamrr  ปีที่แล้ว +12

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

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

      Totalmente de acuerdo Yayo xD

    • @YayoArellano
      @YayoArellano ปีที่แล้ว +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 ปีที่แล้ว +1

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

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

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

  • @chicharrero3884
    @chicharrero3884 ปีที่แล้ว +8

    No lo habia pensado, gran tip

    • @dirknash4113
      @dirknash4113 ปีที่แล้ว +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 TH-cam 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.

    •  ปีที่แล้ว +1

      Es muy mala idea. Muy ineficiente

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

      @ correcto

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

      Un potip

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

    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 หลายเดือนก่อน

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

  • @brunot.a.6151
    @brunot.a.6151 ปีที่แล้ว

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

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

    Es mejor solo usar un objeto

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

    Eso solo complica su mantenimiento y dificulta su lectura

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

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

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

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

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

    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 26 วันที่ผ่านมา

    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 ปีที่แล้ว

    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  ปีที่แล้ว +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 ปีที่แล้ว

      @@vidamrr Ah vale vale jaja gracias

  • @lalosporsche
    @lalosporsche 6 หลายเดือนก่อน +1

    se podría usar un Enum?

    • @pipetdotjs
      @pipetdotjs 15 วันที่ผ่านมา

      claro que sí

  • @wilsoncastrillon5383
    @wilsoncastrillon5383 11 หลายเดือนก่อน

    Buena

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

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

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

    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 ปีที่แล้ว +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 ปีที่แล้ว

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

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

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

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

    Quien te conoce Array jajaja buen tip

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

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

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

    Eso lo estoy viendo en mi clase de informática

  • @aquavxi6431
    @aquavxi6431 ปีที่แล้ว +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 ปีที่แล้ว

    Simplicidad vs eficiencia

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

    ... luego refactorizas y usas un Map :)