主題
利用map()
與reduce()
來取得播放清單的總秒數。
步驟
Step1. 取得全部的時間值
在HTML中,時間資訊放在<li data-time>
中,
所以透過querySelectorAll
來取得,
因為接著會使用map
及reduce
操作,
資料型態必須先轉為Array。1
2// 透過Array.from或是[...]來將querySelectorAll取回的NodeList轉Array
const timeNodes = Array.from(document.querySelectorAll('[data-time'));
Step2. 將取回的資料轉為秒數並加總
1 | const seconds = timeNodes |
Step3. 把總秒數轉為時分秒格式
1 | // 利用取得的總秒數來進行總共時分秒的計算 |
Step4. 印出結果
1 | console.log(`${hours}:${mins}:${secondsLeft}`); |
其他
這篇也算是之前學習的再次運用,
比較特別的是發現map中可以直接使用function!1
2
3
4
5const [mins, secs] = timeCode.split(':').map(parseFloat);
//等同於
const [mins, secs] = timeCode.split(':').map(function(str){
return parseFloat(str);
});