Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Упростить код (https://javascript.ru/forum/dom-window/56431-uprostit-kod.html)

Decode 16.06.2015 00:38

Упростить код
 
Есть такой кусок кода от видео-плеера:
video.addEventListener('timeupdate', function() {
    if (!controls.progressBar.getAttribute('max')) controls.progressBar.setAttribute('max', video.duration);
    controls.progressBar.value = this.currentTime;
    controls.currentTime.innerHTML = (this.currentTime.toFixed(1) < 10) ? '0' + this.currentTime.toFixed(2).replace('.', ':') : this.currentTime.toFixed(2).replace('.', ':');
});



controls.currentTime — это выделенный на скрине блок.

Изначально в HTML написано 00:00, но когда видео проигрывается — время обновляется. Метод currentTime у видео вставляет число с плавающей точкой, я ее заменяю на ":". И нужно, если кол-во секунд меньше 10, то добавлялся еще 0. Я сделал так, это работает, но мне кажется что можно как то упростить этот код?

controls.currentTime.innerHTML = (this.currentTime.toFixed(1) < 10) ? '0' + this.currentTime.toFixed(2).replace('.', ':') : this.currentTime.toFixed(2).replace('.', ':');

рони 16.06.2015 00:46

Цитата:

Сообщение от Decode
(this.currentTime.toFixed(1) < 10)

зачем в условии toFixed ?

Decode 16.06.2015 00:49

рони, 3:81 - чтобы получить первое число.

рони 16.06.2015 00:52

Decode,
а если так ?
controls.currentTime.innerHTML = (this.currentTime < 10? '0' : '') + this.currentTime.toFixed(2).replace('.', ':')

Decode 16.06.2015 00:55

рони, отлично :dance:

nerv_ 16.06.2015 01:08

function format(string) {
    return string.replace('.', ':').replace(/(?=\b\d\b)/g, '0');
}

alert(format('12.12'));
alert(format('2.12'));

Decode 16.06.2015 01:10

nerv_, круто, так и сделаю!


Часовой пояс GMT +3, время: 05:28.