未注释的行与注释的有什么区别(抓取mm并乘以60然后与ss连接)?
function getSeconds(str) {
// var mm = str.substr(0,2);
// var ss = str.substr(3,5);
// return mm*60+ss;
var nums = str.split(':'),
mm = +nums[0],
ss = +nums[1];
return mm * 60 + ss;
}
getSeconds("13:25");
答案 0 :(得分:1)
在工作示例中,您使用+
前缀明确地将字符串转换为数字。
在注释掉的例子中,你不是。由于乘法,分钟被隐式转换为数字,但秒只是通过字符串连接附加。
您可以通过显式转换此示例中的两个组件来解决此问题:
function getSeconds(str) {
var mm = +str.substr(0,2);
var ss = +str.substr(3,2);
return mm*60+ss;
}
console.log(getSeconds("13:25"));
答案 1 :(得分:0)
在使用.substring()之前需要先转换成字符串;
var myStr = value.toString().substring(2,4);