2016-06-02 3 views
0

Я продолжаю получать 0, когда я вставляю этот код в REPL в свой 3-й оператор if. Кажется, никто не может понять это вокруг меня. Вы видите, что с ним не так?Почему это дает мне 0 в моем третьем заявлении if?

var humanReadable = function (seconds){ 
     var sec = 0; 
     var min = 0; 
     var hr = 0; 

     sec = seconds % 60; 
     min = parseInt((seconds/60) % 60); 
     hr = parseInt(seconds/3600); 

     if(sec<10){ 
     sec = "0"+sec; 
     } 
     if(min<10){ 
     min = "0"+min; 
     } 
     if(hr<10){ 
     min = "0"+hr; 
     } 
     console.log(hr + ":" + min + ":" + sec); 
    }; 

humanReadable(0) // '00:00:00' 
humanReadable(5) // '00:00:05' 
humanReadable(60) // '00:01:00' 
humanReadable(86399) // '23:59:59' 
humanReadable(359999) // '99:59:59 
+2

Почему вы меняете '' min' когда hr' меньше 10? – Pointy

+0

Также вызовы 'parseInt()', вероятно, должны быть вызваны на 'Math.floor()' вместо этого. – Pointy

+0

Все ваши примеры, кажется, возвращаются хорошо, в чем проблема? – C14L

ответ

4

Я считаю, что у вас есть опечатка в вашей функции:

if(hr<10){ 
    min = "0"+hr; // should be hr = "0"+hr 
} 
+3

Если проблема действительно опечатка, вопрос должен быть закрыт, а не отвечать ... –

+0

@FelixKling не знал что у меня было достаточно звания, чтобы проголосовать за закрытие ... подумал, что я помог бы парню в среднее время – CaffeineAddiction

-1
if(hr<10){ 
     min = "0"+hr; 
} 

является то, что у вас есть

должно быть

if(hr<10){ 
     hr = "0"+hr; 
} 
0

Тело вашей трети если утверждение должно быть: hr = "0"+hr; Я также добавил точки с запятой к вашим вызовам функций.

Запустите обновленный код ниже, и вы увидите, что он производит желаемый результат.

var humanReadable = function (seconds) 
 
{ 
 
    var sec = 0; 
 
    var min = 0; 
 
    var hr = 0; 
 

 
    sec = seconds % 60; 
 
    min = parseInt((seconds/60) % 60); 
 
    hr = parseInt(seconds/3600); 
 

 
    if(sec<10) 
 
    { 
 
    sec = "0"+sec; 
 
    } 
 
    if(min<10) 
 
    { 
 
    min = "0"+min; 
 
    } 
 
    if(hr<10) 
 
    { 
 
    hr = "0"+hr; 
 
    } 
 
    console.log(hr + ":" + min + ":" + sec); 
 
}; 
 

 
humanReadable(0); // '00:00:00' 
 
humanReadable(5); // '00:00:05' 
 
humanReadable(60); // '00:01:00' 
 
humanReadable(86399); // '23:59:59' 
 
humanReadable(359999); // '99:59:59'

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