亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在時間輸入類型中插入 SubString

在時間輸入類型中插入 SubString

慕斯709654 2023-06-15 10:31:24
我有一個時間計算器,它以下列格式返回時間的輸入類型:hh/mm/ss目前顯示如下:Let time = "03:00:00"當我執行計算函數時,它返回“3:0:0”并刪除“0”。如何將其更改為 03:00:00?僅當 h/m/s 小于 10 時才必須添加“0”。如果需要,這是我的計算函數。該函數返回數組的時間總和:let testOne = ["02:00:00", "01:00:00", "01:00:00"]function test () {let calTotalHours = testOne.map(t => t.split(':')).reduce((arr,item,index)=>{    arr[0]+= parseFloat(item[0]);    arr[1]+= parseFloat(item[1]);    arr[2]+= parseFloat(item[2]);    if(arr[2]>=60) {        arr[1]++;        arr[2]%=60;    }    if(arr[1]>=60) {        arr[0]++;        arr[1]%=60;    }    return arr;},[0,0,0])    .join(':')    console.log(calTotalHours)}
查看完整描述

3 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

您需要在 reduce 之后添加零,因為 reduce 仍在計算時間。

.map在計算后添加了一個以獲取每個時間值,然后檢查值是否小于 10:

.map((v) => (v < 10) ? v = "0" + v : v)

let testOne = ["02:00:00", "01:00:00", "01:00:00"]


function test() {

? let calTotalHours = testOne.map(t => t.split(':')).reduce((arr, item, index) => {


? ? arr[0] += parseFloat(item[0]);

? ? arr[1] += parseFloat(item[1]);

? ? arr[2] += parseFloat(item[2]);


? ? if (arr[2] >= 60) {

? ? ? arr[1]++;

? ? ? arr[2] %= 60;

? ? }

? ? if (arr[1] >= 60) {

? ? ? arr[0]++;

? ? ? arr[1] %= 60;

? ? }


? ? return arr;

? }, [0, 0, 0]).map((v) => (v < 10) ? v = "0" + v : v).join(':')

? console.log(calTotalHours)

}


test()


查看完整回答
反對 回復 2023-06-15
?
茅侃侃

TA貢獻1842條經驗 獲得超21個贊

你可以做這樣的事情來獲得你想要的padStart()功能


let testOne = ["02:00:00", "01:00:00", "01:00:00"]


function test() {

  let calTotalHours = testOne.map(t => t.split(':')).reduce((arr, item, index) => {


      arr[0] += parseFloat(item[0]);

      arr[1] += parseFloat(item[1]);

      arr[2] += parseFloat(item[2]);


      if (arr[2] >= 60) {

        arr[1]++;

        arr[2] %= 60;

      }

      if (arr[1] >= 60) {

        arr[0]++;

        arr[1] %= 60;

      }



      return arr;

    }, [0, 0, 0])

    .map((num) => num.toString().padStart(2, 0)) //add 0 to each value here if they are less than 10

    .join(':');

  console.log(calTotalHours);


}

test();


查看完整回答
反對 回復 2023-06-15
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

您可以在加入陣列之前嘗試使用 .padStart() on:

.map(num => num.toString().padStart(2, '0'))

這將填充長度小于 2 的前導 0


查看完整回答
反對 回復 2023-06-15
  • 3 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號