Einführung
In diesem Lab werden wir die formatSeconds-Funktion in JavaScript untersuchen. Diese Funktion gibt das ISO-Format für eine gegebene Anzahl von Sekunden zurück, indem sie die Sekunden in geeignete Werte für Stunden, Minuten und Sekunden aufteilt. Wir werden lernen, wie man Array.prototype.map(), Math.floor(), String.prototype.padStart() und Array.prototype.join() verwendet, um die Werte zu formatieren und zu einer Zeichenkette zu kombinieren. Am Ende dieses Labs werden Sie eine solide Vorstellung davon haben, wie man Zeitdaten in JavaScript manipulieren und formatieren kann.
Funktion, um Sekunden als ISO-Zeit zu formatieren
Um diesen Code zu verwenden, öffnen Sie das Terminal/SSH und geben Sie node ein. Diese Funktion nimmt die Anzahl der Sekunden als Argument entgegen und gibt das ISO-Zeitenformat zurück. So funktioniert es:
- Teilen Sie die Anzahl der Sekunden durch die entsprechenden Werte, um die entsprechenden Werte für
Stunde,MinuteundSekundezu erhalten. - Speichern Sie das Vorzeichen der Zahl in einer Variable, um es am Anfang des Ergebnisses anzuhaften.
- Verwenden Sie
Array.prototype.map()in Kombination mitMath.floor()undString.prototype.padStart(), um jedes Segment in eine Zeichenkette zu wandeln und zu formatieren. - Verwenden Sie
Array.prototype.join(), um die Werte zu einer Zeichenkette zu kombinieren.
Hier ist der Code:
const formatSeconds = (s) => {
const [hour, minute, second, sign] =
s > 0
? [s / 3600, (s / 60) % 60, s % 60, ""]
: [-s / 3600, (-s / 60) % 60, -s % 60, "-"];
return (
sign +
[hour, minute, second]
.map((v) => `${Math.floor(v)}`.padStart(2, "0"))
.join(":")
);
};
Sie können die Funktion mit diesen Beispielen testen:
formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Anzahl der Sekunden in ISO-Format" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.