Ejercicios con Moment.js, Lodash y Faker.js
En este documento encontrarás ejercicios prácticos con Moment.js, Lodash y Faker.js.
Cada sección incluye una breve explicación de la librería, un enlace a su documentación oficial y 10 ejercicios.
Las soluciones están ocultas con <details> y <summary> para que intentes resolverlos antes de ver la respuesta.
📌 Instalación de librerías
Ejecuta en consola:
npm init -y
npm install moment lodash @faker-js/faker
Luego, en tus archivos Node.js, importa las librerías así:
const moment = require('moment');
const _ = require('lodash');
const { faker } = require('@faker-js/faker');
🕒 Moment.js
¿Qué es?
Moment.js es una librería para manipular, validar, analizar y mostrar fechas y tiempos en JavaScript.
Ejercicios
-
Obtener la fecha actual en formato YYYY-MM-DD
Ver solución
const moment = require('moment');
console.log(moment().format('YYYY-MM-DD')); -
Mostrar la hora actual en formato de 24 horas
Ver solución
console.log(moment().format('HH:mm:ss')); -
Obtener el día de la semana actual
Ver solución
console.log(moment().format('dddd')); -
Sumar 7 días a la fecha actual
Ver solución
console.log(moment().add(7, 'days').format('YYYY-MM-DD')); -
Restar 3 meses a la fecha actual
Ver solución
console.log(moment().subtract(3, 'months').format('YYYY-MM-DD')); -
Calcular cuántos días faltan para el 31 de diciembre del año actual
Ver solución
const endYear = moment().endOf('year');
console.log(endYear.diff(moment(), 'days')); -
Verificar si una fecha es válida (2025-02-30)
Ver solución
console.log(moment('2025-02-30', 'YYYY-MM-DD', true).isValid()); -
Mostrar el inicio del mes actual
Ver solución
console.log(moment().startOf('month').format('YYYY-MM-DD')); -
Mostrar el final del día actual
Ver solución
console.log(moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')); -
Calcular la diferencia en días entre 2025-01-01 y hoy
Ver solución
console.log(moment().diff(moment('2025-01-01'), 'days'));
🔧 Lodash
¿Qué es?
Lodash es una librería de utilidades que facilita trabajar con arrays, objetos y funciones.
Ejercicios
-
Obtener el valor máximo de un array
[10, 5, 20, 8]Ver solución
const _ = require('lodash');
console.log(_.max([10, 5, 20, 8])); -
Obtener el valor mínimo de un array
Ver solución
console.log(_.min([10, 5, 20, 8])); -
Ordenar un array
[3, 1, 4, 2]Ver solución
console.log(_.sortBy([3, 1, 4, 2])); -
Eliminar duplicados de
[1, 2, 2, 3, 4, 4, 5]Ver solución
console.log(_.uniq([1, 2, 2, 3, 4, 4, 5])); -
Dividir un array en partes de tamaño 2
[1,2,3,4,5]Ver solución
console.log(_.chunk([1,2,3,4,5], 2)); -
Combinar arrays
[1,2]y[3,4]Ver solución
console.log(_.concat([1,2], [3,4])); -
Rellenar un array con un valor
*entre índices 1 y 3Ver solución
console.log(_.fill([1,2,3,4,5], '*', 1, 4)); -
Encontrar el índice del primer número mayor que 3
[1,2,3,4,5]Ver solución
console.log(_.findIndex([1,2,3,4,5], n => n > 3)); -
Agrupar objetos por propiedad
typeVer solución
const data = [{type: 'a'}, {type: 'b'}, {type: 'a'}];
console.log(_.groupBy(data, 'type')); -
Invertir un objeto
{a:1, b:2}Ver solución
console.log(_.invert({a:1, b:2}));
🎭 Faker.js
¿Qué es?
Faker.js permite generar datos falsos (nombres, correos, direcciones, etc.), muy útil para pruebas.
Ejercicios
-
Generar un nombre completo aleatorio
Ver solución
const { faker } = require('@faker-js/faker');
console.log(faker.person.fullName()); -
Generar un correo electrónico falso
Ver solución
console.log(faker.internet.email()); -
Generar una dirección falsa
Ver solución
console.log(faker.location.streetAddress()); -
Generar un número de teléfono falso
Ver solución
console.log(faker.phone.number()); -
Generar una fecha de nacimiento aleatoria
Ver solución
console.log(faker.date.birthdate()); -
Generar un nombre de usuario
Ver solución
console.log(faker.internet.userName()); -
Generar un país aleatorio
Ver solución
console.log(faker.location.country()); -
Generar un producto falso
Ver solución
console.log(faker.commerce.productName()); -
Generar una empresa falsa
Ver solución
console.log(faker.company.name()); -
Generar una tarjeta de crédito falsa
Ver solución
console.log(faker.finance.creditCardNumber());