国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Day18 - Reduce、Map混合使用計算時分秒

raoyi / 2036人閱讀

摘要:混合使用計算時分秒本文出自從零到壹全棧部落作者黎躍春追時間的人簡介是推出的一個天挑戰。完整中文版指南及視頻教程在從零到壹全棧部落。效果圖第天挑戰的內容主要是如何將一系列的加起來,最終計算總時間,總時間用時分秒顯示。

Day18 - Reduce、Map混合使用計算時分秒

本文出自:從零到壹全棧部落
作者:?黎躍春-追時間的人
簡介:JavaScript30 是 Wes Bos 推出的一個 30 天挑戰。項目免費提供了 30 個視頻教程、30 個挑戰的起始文檔和 30 個挑戰解決方案源代碼。目的是幫助人們用純 JavaScript 來寫東西,不借助框架和庫,也不使用編譯器和引用?,F在你看到的是這系列指南的第 18 篇。完整中文版指南及視頻教程在 從零到壹全棧部落。

效果圖

第18天挑戰的內容主要是如何將一系列的data-time加起來,最終計算總時間,總時間用時分秒顯示。

HTML、CSS代碼




  
  Adding Up Times with Reduce



  
  • Video 1
  • Video 2
  • Video 3
  • Video 4
  • Video 5
  • Video 6
  • Video 7
  • Video 8
  • Video 9
  • Video 10
  • Video 11
  • Video 12
  • Video 13
  • Video 14
  • Video 15
  • Video 16
  • Video 17
  • Video 18
  • Video 19
  • Video 20
  • Video 21
  • Video 22
  • Video 23
  • Video 24
  • Video 25
  • Video 26
  • Video 27
  • Video 28
  • Video 29
  • Video 30
  • Video 31
  • Video 32
  • Video 33
  • Video 34
  • Video 35
  • Video 36
  • Video 37
  • Video 38
  • Video 39
  • Video 40
  • Video 41
  • Video 42
  • Video 43
  • Video 44
  • Video 45
  • Video 46
  • Video 47
  • Video 48
  • Video 49
  • Video 50
  • Video 51
  • Video 52
  • Video 53
  • Video 54
  • Video 55
  • Video 56
  • Video 57
  • Video 58
JS代碼 方法一
//獲取整個 li NodeList
let items = document.querySelectorAll("ul li");
//創建一個空數組,存儲所有data-time字符串
let itemtimearray = [];
//通過for循環將每個li中的data.time添加到 itemtimearray 數組中
for (let item of items) {
 itemtimearray.push(item.dataset.time);
}

//遍歷itemtimearray數組,返回一個新的數組
let spiltitmes = itemtimearray.map(item => {
//通過 : 將字符串拆分成數組 
 let temp = item.split(":");
 //返回對象包涵分和秒的對象
 return {
   min: temp[0],
   sencond: temp[1]
 }
});

//初始化分和秒
let totalMin = 0;
let totalSec = 0;
//通過reduce函數將spiltitmes數組中所有的min疊加并存儲到totalMin中
totalMin = spiltitmes.reduce((total, time) => {
 return total += parseInt(time.min);
}, 0);
//通過reduce函數將spiltitmes數組中所有的sencond疊加并存儲到totalSec中
totalSec = spiltitmes.reduce((total, time) => {
 return total += parseInt(time.sencond);
}, 0);
//求余計算秒
let finalSecond = parseInt(totalSec % 60);
//計算一共多少分鐘
let finalMin = parseInt(totalMin + (totalSec / 60)) % 60;
//計算一共多少小時
let finalHour = parseInt((totalMin + (totalSec / 60)) / 60);
//輸出時分秒
console.log(`共${finalHour}小時,${finalMin}分鐘,${finalSecond}秒。`);
方法二
// 1. [...items] => 將其展開為數組
// 2. Array.from(items) => 使用Array.from()將items轉換為數組 
// 獲取所有節點
// 3. const timeNodes = Array.from(document.querySelectorAll("[data-time]"));
// 4. parseFloat:
// [].map(parseFloat) => [].map(function(x) {retunr parseFloat(x)});


// 獲取所有的帶有data-time屬性的節點
const timeNodes = Array.from(document.querySelectorAll("[data-time]"));


const seconds = timeNodes
//返回一個包涵所有data-time值的數組
 .map(node => node.dataset.time)
 //返回一個將data-time解析成秒的數組
 .map(timeCode => {
   //timeCode為 1:43 這樣格式的字符串
   //timeCode.split(":") 返回一個新數組,數組里面裝的是分和秒的時間
   //[].map(parseFloat) => [].map(function(x) {retunr parseFloat(x)});
   const [mins, secs] = timeCode.split(":").map(parseFloat);
   //將分乘以60+秒,計算所有的秒,并返回
   return (mins * 60) + secs;
 })
 //將數組中的所有的秒疊加并返回
 .reduce((total, vidSeconds) => total + vidSeconds);

//通過求余取整計算時分秒
let secondsLeft = seconds;
const hours = Math.floor(secondsLeft / 3600);
secondsLeft = secondsLeft % 3600;

const mins = Math.floor(secondsLeft / 60);
secondsLeft = secondsLeft % 60;
//打印輸出
console.log(hours, mins, secondsLeft);

完結:所有代碼解釋在代碼注釋中。

源碼下載

Github Source Code

全棧部落 區塊鏈部落

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84761.html

相關文章

  • Java8學習小記

    摘要:但有一個限制它們不能修改定義的方法的局部變量的內容。如前所述,這種限制存在的原因在于局部變量保存在棧上,并且隱式表示它們僅限于其所在線程。 2014年,Oracle發布了Java8新版本。對于Java來說,這顯然是一個具有里程碑意義的版本。尤其是那函數式編程的功能,避開了Java那煩瑣的語法所帶來的麻煩。 這可以算是一篇Java8的學習筆記。將Java8一些常見的一些特性作了一個概要的...

    CHENGKANG 評論0 收藏0
  • Java時間類總結

    摘要:獲取當天是幾號獲取當天是星期幾獲取本月的第一天取本月最后一天是不是很贊提供時分秒不提供年月日,也是線程安全并且不可變類。樣例獲取當前的小時小時數加結果包含年月日時分秒,精確到納秒級別,同樣是線程安全并且不可變類。 java.util.Date 包含有年月日時分秒,精確到毫秒級別。官方解釋: // The class Date represents a specific instant ...

    coolpail 評論0 收藏0
  • js獲取當前時間(昨天、今天、明天)

    摘要:更新今天又發現了一種簡單的方法可以直接對年月日時分秒進行操作,假如今天那么所得昨天為昨天的時間前天的時間其中,函數為擴展函數。 1、時間格式化 1 //昨天的時間 2 var day1 = new Date(); 3 day1.setTime(day1.getTime()-24*60*60*1000); 4 var s1 = day1.getFullYear()+- + (da...

    rainyang 評論0 收藏0

發表評論

0條評論

raoyi

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<