Есть такая структура html:
const timeNodes = Array.from(document.querySelectorAll('[data-time]'));
- Video 1
- Video 2
- Video 3
- Video 4
помогите посчитать или подскажите как узнать продолжительность всех видео. Их длительность указана в аттрибуте data-time=""
Ответ
Пара функций, первая считает число секунд, вторая форматирует секунды.
// Суммируем результаты обработки отдельных строк с помощью reduce
const secs = list => list.reduce((sum, str) => {
// разбиваем строку по двоеточиям, относимся к результату, как к числу в 60-ричной системе
let parts = str.split(':');
// Складываем 60-ричные разряды
let q = 1;
while (parts.length) {
sum += q * parts.pop();
q *= 60;
}
return sum;
}, 0);
// Обратная операция, перевод числа секунд в 60-ричный вид.
const fmt = secs => {
let parts = []; // позиции
while (secs > 0) {
parts.unshift(secs % 60); // вдвигаем позицию слева
secs = secs/60 |0; // целочисленное деление
}
return parts.map(d => d<10?'0'+d:''+d) // Добавляем ведущие нули
.join(':');
}
let list = ['1:00:00', '12:55', '00:07'];
let sum = secs(list);
let time = fmt(sum);
console.info(sum, time)
Комментариев нет:
Отправить комментарий