Einführung
In diesem Lab werden wir eine Funktion namens formatDuration untersuchen, die uns hilft, eine gegebene Anzahl von Millisekunden in ein menschenlesbares Format umzuwandeln. Wir werden lernen, wie mathematische Operationen verwendet werden, um die entsprechenden Werte für Tage, Stunden, Minuten, Sekunden und Millisekunden zu extrahieren. Wir werden auch verschiedene Array-Methoden wie filter, map und join verwenden, um einen String zu erstellen, der die Dauer auf benutzerfreundliche Weise anzeigt. Am Ende dieses Labs werden Sie ein tieferes Verständnis dafür haben, wie Sie zeitbezogene Daten in JavaScript manipulieren und formatieren.
Format-Dauer
Um das menschenlesbare Format einer gegebenen Anzahl von Millisekunden zu erhalten, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Code-Praxis zu beginnen. - Teilen Sie die
msmit passenden Werten, um die passenden Werte fürTag,Stunde,Minute,SekundeundMillisekundezu erhalten. - Verwenden Sie
Object.entries()mitArray.prototype.filter(), um nur die nicht null-Werte zu behalten. - Erstellen Sie den String für jeden Wert, indem Sie die Pluralform entsprechend verwenden, mit
Array.prototype.map(). - Verbinden Sie die Werte zu einem String, indem Sie
Array.prototype.join()verwenden.
Hier ist der Code:
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(", ");
};
Hier sind einige Beispiele:
formatDuration(1001); // '1 Sekunde, 1 Millisekunde'
formatDuration(34325055574);
// '397 Tage, 6 Stunden, 44 Minuten, 15 Sekunden, 574 Millisekunden'
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Format-Dauer-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.