2016-07-05 2 views
-2

В чем разница между несанкционированными линиями и комментариями (который захватывает мм и умножает на 60, затем объединяется с ss)?Мой метод substr не работает в js

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

В вашем комментировал код, который вы используете 'string' вместо' str'. –

+0

Второй аргумент 'String.prototype.substr()' - это длина согласованной подстроки, а не индекс конца, функция, которая принимает 2 индекса, - 'String.prototype.substring()' –

ответ

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"));

+0

Более явный способ преобразования в number использует конструктор 'Number()', просто используя '+' вызывает путаницы, как тот, который был у OP. –

Смежные вопросы