前言
本文為「JavaScript 30」教學影片的學習筆記。
目標
加總播放清單的總秒數,並換算成小時、分鐘與秒數。
筆記
取得所有擁有 data-time
屬性的元素,並將其從 NodeList
型態轉為 Array
型態。
1
| const timeNotes = Array.from(document.querySelectorAll('[data-time]'));
|
使用 map()
和 reduce()
函式取得總秒數。
1 2 3 4 5 6 7
| const seconds = timeNotes .map(node => node.dataset.time) .map(timecode => { const [mins, secs] = timecode.split(':').map(parseFloat); return (mins * 60) + secs; }) .reduce((total, vidSeconds) => total + vidSeconds);
|
將累加總秒數換算成小時、分鐘與秒數。
1 2 3 4 5 6 7 8 9 10 11 12
| let secondsLeft = seconds;
const hours = Math.floor(secondsLeft / 3600);
secondsLeft %= 3600;
const mins = Math.floor(secondsLeft / 60);
secondsLeft %= 60;
console.log(hours, mins, secondsLeft);
|