Написал таймер:
var duration = { d: 1, h: 1, m: 5, s: 5 },
s = $('#s'),
m = $('#m'),
h = $('#h'),
d = $('#d');
if (duration.d < 10){
d.html('0' + duration.d);
} else{
d.html(duration.d);
}
if (duration.h < 10){
h.html('0' + duration.h);
} else{
h.html(duration.h);
}
if (duration.m < 10){
m.html('0' + duration.m);
} else{
m.html(duration.m);
}
if (duration.s < 10){
s.html('0' + duration.s);
} else{
s.html(duration.s);
}
setInterval(function(){
if (duration.d < 10){
d.html('0' + duration.d);
} else{
d.html(duration.d);
}
if (duration.h < 10){
h.html('0' + duration.h);
} else{
h.html(duration.h);
}
if (duration.m < 10){
m.html('0' + duration.m);
} else{
m.html(duration.m);
}
if (duration.s < 10){
s.html('0' + duration.s);
} else{
s.html(duration.s);
}
duration.s--;
if (duration.s === 0){
duration.m--;
duration.s = 59;
if (duration.m < 0){
duration.h--;
duration.m = 59;
if(duration.h < 0){
duration.d--;
duration.h = 59;
if(duration.d < 0){
duration = 0;
}
}
}
}
}, 1000);
Хочу избавиться от лишнего кода (этой неведомой кучи ифов) через for in
function countCheck () {
for (var key in duration) {
if (duration.hasOwnProperty(key)) {
if (duration[key] < 10){
duration[key].html('0' + duration[key]);
} else{
duration[key].html(duration[key]);
}
}
}
}
countCheck ();
Не работает. Объясните почему. Вроде бы гуглил, и все равно не могу найти ошибку.