创建一个将基于字符串的时间转换为毫秒的函数使我面临挑战。
那是我得到的字符串格式:
“ hours:minutes:seconds.milliseconds”
因此,例如,此值将需要返回3010220。
“ 0:50:10.220”
该函数必须短而一行。
我很想知道我在哪里可以改善以下功能,因为它没有通过标准。如何将其变成一个衬套?
function toMilliseconds(time){
return time.match(/[0-9]+/g).map(function(val,s,a){
return s != 3 ? +val * ((Math.pow(60,a.length - s -2) * 1000)) : +val;
}).reduce(function(a,b){
return a+b;
},0);
}
最佳答案
有很多不同的方法。
这是我想到的最短方法(使用ES6):
var str = "0:50:10.220";
var ms = (s=>1E3*s[2]+6E4*s[1]+36E5*s[0])(str.split(':'));
console.log(ms);