我有一个秒表应用程序,可以将时间存储在一个数组中。 JS从计时器启动时开始计算毫秒数,然后将这些毫秒数转换为秒和分钟,然后将其输出为字符串。
我想做的是计算这些时间的平均值,因此我必须将字符串转换为浮点数。它可以将类似10.35的字符串转换为浮点数,但是它显然不适用于1:24.56之类的东西,这就是我要解决的问题。时间将采用以下格式之一:
[seconds].[milliseconds]
[minutes]:[seonds].[milliseconds]
有什么想法吗?我对Javascript真的很陌生,所以我不确定该在哪里使用。
编辑:存储库为here。所有的废话都发生在timer.js和main.js文件中。
答案 0 :(得分:4)
只需将其拆分并添加:
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;
}
(这使用“一元加运算符”将字符串转换为数字)