将时间转换为浮点数
Convert time to a float
我有一个秒表应用程序,可以将时间存储在一个数组中。 JS从计时器启动开始计算毫秒数,然后将这些毫秒数转换为秒和分钟,并将其作为字符串输出。
我要做的是计算这些时间的平均值,因此我必须将字符串转换为浮点数。它可以将 10.35 之类的字符串转换为浮点数,但它显然不适用于 1:24.56 之类的内容,这就是我要修复的问题。时间将采用以下格式之一:
[seconds].[milliseconds]
[minutes]:[seonds].[milliseconds]
有什么想法吗?我是 Javascript 的新手,所以我不确定该去哪里。
编辑:回购是 here。所有的废话都发生在 timer.js 和 main.js 文件中。
拆分,然后相加:
function toMS(str) {
if(!str.includes(":"))
return parseFloat(str);
const [mins, secms] = str.split(":");
const [sec, ms] = secms.split(".");
return ((+mins * 60) + +sec) * 1000 + +ms;
}
(这里使用"unary plus operators"将字符串转换成数字)
我有一个秒表应用程序,可以将时间存储在一个数组中。 JS从计时器启动开始计算毫秒数,然后将这些毫秒数转换为秒和分钟,并将其作为字符串输出。
我要做的是计算这些时间的平均值,因此我必须将字符串转换为浮点数。它可以将 10.35 之类的字符串转换为浮点数,但它显然不适用于 1:24.56 之类的内容,这就是我要修复的问题。时间将采用以下格式之一:
[seconds].[milliseconds]
[minutes]:[seonds].[milliseconds]
有什么想法吗?我是 Javascript 的新手,所以我不确定该去哪里。
编辑:回购是 here。所有的废话都发生在 timer.js 和 main.js 文件中。
拆分,然后相加:
function toMS(str) {
if(!str.includes(":"))
return parseFloat(str);
const [mins, secms] = str.split(":");
const [sec, ms] = secms.split(".");
return ((+mins * 60) + +sec) * 1000 + +ms;
}
(这里使用"unary plus operators"将字符串转换成数字)