Ejemplo de cómo evitar repetir tu código #shorts

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

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

JustAstra-Lx
Автор

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

rovixen
Автор

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"

kevinbar
Автор

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

andresdavidpena
Автор

Es cierto que con el switch repites Código, pero utilizando un arreglo o diccionario sería más consumo de recursos.

Porque primero se reserva el espacio de memoria para cada día con su índice y luego tienes que acceder al día seleccionado. lo que significa que reservaste espacios que no se utilizaran al final.

Puede que con 7 elementos no sea mucha la diferencia, pero este mismo escenario se puede dar con más elementos y notaras la diferencia :3.

haloants
Автор

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.

_Holy_Lance_
Автор

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

miguelangeladornaruiz
Автор

También está la opción del diccionario, que puede ser un poco más pesado en memoria, Pero es de acceso mucho más rápido y además podemos aplicar también la inversa

Además de aprovecharnos de los "errores" al no encontrar una opción válida

elcanalitodecito
Автор

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

leonardotroya
Автор

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

dairondanilo
Автор

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');
}

Cesar.AugustoS
Автор

veo que aun se podria mejorar para tener una funcion pura, seria agregar el array dentro de la funcion y bueno mejorar el let a un const, puesto que no tiene sentido tener una variable mutable de un valor estatico

claudioviajando
Автор

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

ElTibuGameplays
Автор

Es más simple con un diccionario. Llave el numero del día, valor el nombre.

jorgemendiza
Автор

También podías hacer un diccionario. Pero buen aporte

joseprogramador
Автор

Gracias por video! Como se llama programa usas para pintar en pantalla?

frankqnnez
Автор

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

grbachov
Автор

Para evitar todo... Crea un objeto y que el index de cada objeto sea el número ej: { "1" : "lunes", ...}

pankesito
Автор

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

mandresblac
Автор

Creo que estaría mejor usando un diccionario/hashmap o lo que use JS como equivalente

Mirage