我的substr方法不适用于js

时间:2016-07-05 00:58:13

标签: javascript

未注释的行与注释的有什么区别(抓取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");

2 个答案:

答案 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);