Introducción
En este laboratorio, exploraremos una función llamada formatDuration que nos ayuda a convertir un número dado de milisegundos en un formato legible para humanos. Aprenderemos cómo utilizar operaciones matemáticas para extraer los valores adecuados de días, horas, minutos, segundos y milisegundos. También utilizaremos varios métodos de matriz como filter, map y join para crear una cadena que muestre la duración de manera amigable para el usuario. Al final de este laboratorio, tendrás una comprensión más profunda de cómo manipular y formatear datos relacionados con el tiempo en JavaScript.
Formato de duración
Para obtener el formato legible para humanos de un número dado de milisegundos, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Divida los
mscon los valores adecuados para obtener los valores adecuados dedía,hora,minuto,segundoymilisegundo. - Utilice
Object.entries()conArray.prototype.filter()para conservar solo los valores no nulos. - Cree la cadena para cada valor, pluralizando adecuadamente, utilizando
Array.prototype.map(). - Combine los valores en una cadena utilizando
Array.prototype.join().
Aquí está el código:
const formatDuration = (ms) => {
if (ms < 0) ms = -ms;
const time = {
day: Math.floor(ms / 86400000),
hour: Math.floor(ms / 3600000) % 24,
minute: Math.floor(ms / 60000) % 60,
second: Math.floor(ms / 1000) % 60,
millisecond: Math.floor(ms) % 1000
};
return Object.entries(time)
.filter((val) => val[1] !== 0)
.map(([key, val]) => `${val} ${key}${val !== 1 ? "s" : ""}`)
.join(", ");
};
Aquí hay algunos ejemplos:
formatDuration(1001); // '1 segundo, 1 milisegundo'
formatDuration(34325055574);
// '397 días, 6 horas, 44 minutos, 15 segundos, 574 milisegundos'
Resumen
¡Felicitaciones! Has completado el laboratorio de Formato de Duración. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.