はじめに
この実験では、JavaScript の formatSeconds 関数を調べます。この関数は、与えられた秒数を時、分、秒に適切に分割して、ISO 形式で返します。Array.prototype.map()、Math.floor()、String.prototype.padStart()、Array.prototype.join() を使って値をフォーマットして文字列に結合する方法を学びます。この実験が終わるとき、JavaScript で時間データを操作してフォーマットする方法をしっかりと理解しているようになります。
秒数を ISO 時間形式にフォーマットする関数
このコードを使用するには、ターミナル/SSH を開いて node と入力します。この関数は、秒数を引数として受け取り、ISO 時間形式を返します。その動作方法は以下の通りです。
- 秒数を適切な値で割って、
hour、minute、secondに対応する値を取得します。 - 数値の符号を変数に格納して、結果の先頭に付けます。
Array.prototype.map()をMath.floor()とString.prototype.padStart()と組み合わせて、各セグメントを文字列化してフォーマットします。Array.prototype.join()を使用して値を文字列に結合します。
以下がコードです。
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(":")
);
};
これらの例で関数をテストできます。
formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'
まとめ
おめでとうございます!あなたは「秒数を ISO 形式に変換する」実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を行って練習してください。