1497
En este blog resuelvo los desafíos diarios del AdventJS 2024, una iniciativa de @midudev para mejorar tus habilidades en JavaScript cada diciembre.
Descripción del Reto:
Santa Claus 🎅 ha recibido una lista de números mágicos que representan regalos 🎁, pero algunos de ellos están duplicados y deben ser eliminados para evitar confusiones. Además, los regalos deben ser ordenados en orden ascendente antes de entregárselos a los elfos..
Solución:
La tarea es crear una función que reciba una lista de números enteros (que pueden incluir duplicados) y devuelva una nueva lista sin duplicados, ordenada en orden ascendente.
Código:
Explicación:
new Set(gifts)
para eliminar los duplicados de la lista. Un Set
es una estructura de datos que solo permite valores únicos....
), convertimos el Set
nuevamente en un array..sort()
para ordenar los números en orden ascendente. La función de comparación (a, b) => a - b
garantiza que los números se ordenen correctamente de menor a mayor.
Descripción del Reto:
Santa Claus 🎅 quiere enmarcar los nombres de los niños buenos para decorar su taller 🖼️, pero el marco debe cumplir unas reglas específicas. Tu tarea es ayudar a los elfos a generar este marco mágico.
Reglas:
Solución:
*
con la longitud requerida.
Código:
Explicación:
Cálculo de la longitud máxima (maxLength
):
Math.max
junto con map
para obtener el largo del nombre más largo. Esto asegura que el marco se ajuste a todos los nombres correctamente.Construcción del marco:
frameWidth
) se calcula como maxLength + 2
, añadiendo un espacio de margen a cada lado.topBottomBorder
) son secuencias de *
con una longitud de frameWidth + 2
(para incluir los bordes laterales).Formateo de los nombres (framedNames
):
*
, con un espacio antes y después. Los espacios necesarios para completar la línea se calculan como maxLength - name.length
.Unión del marco completo:
join('\n')
para formar un bloque de texto.
Día 3
Descripción del Reto:
Santa Claus 🎅 está revisando el inventario de su taller para preparar la entrega de regalos. Los elfos han registrado los juguetes en un array de objetos, pero la información está un poco desordenada. Necesitas ayudar a Santa a organizar el inventario.
Recibirás un array de objetos, donde cada objeto representa un juguete y tiene las propiedades:
name
: el nombre del juguete (string).quantity
: la cantidad disponible de ese juguete (entero).category
: la categoría a la que pertenece el juguete (string).Escribe una función que procese este array y devuelva un objeto que organice los juguetes de la siguiente manera:
Solución:
La mejor manera de abordar este problema es:
Código:
Explicación:
organized
que contendrá nuestro inventario estructurado.const { category, name, quantity } = item
para extraer las propiedades necesarias de cada item de manera más elegante.if (!organized[category])
). Si no existe, creamos un objeto vacío para esa categoría.Esta implementación es óptima porque:
puedes ver el repositorio de todos los ejercicios aqui: https://github.com/hebertdev/AdventJS-2024-Solutions
Si te ha gustado este post, compártelo con tus amigos y de esta manera me ayudas a mantener este sitio web.