簡體   English   中英

通過配置創建時間數組

[英]Creating a time array from a configuration

大家好,我對Javascript和Angular2非常陌生。 我正在一個項目中,該項目需要一系列基於從后端傳遞過來的配置的時序。 基本上,配置包括以下內容:

export const TIMEDATA: any = {
    start_time: "9",
    end_time: "16",
    interval: "30"
}

有了這種配置,我怎么能提出一個類似的數組

Array = ["9:00", "9:30", "10:00", ...., "16:00"]

有什么見識的家伙嗎? 提前致謝。

您可以嘗試使用循環來計算時間間隔:

 const leftpad = (str, padString, length) => { var s = str.toString(); while (s.length < length) s = padString + s; return s; } let timedata = { start_time: "9", end_time: "16", interval: "30" } let start_time = +timedata.start_time * 60; let end_time = +timedata.end_time * 60; let interval = +timedata.interval; let times = []; for (var i = start_time; i <= end_time; i += interval) { let h = Math.floor(i / 60); let m = i % 60; let time = [h, leftpad(m, '0', 2)].join(':'); times.push(time); } console.log(times); 

這是使用lodash的解決方案。 要在項目中快速使用lodash,請在html頁面中包含script標記,然后在使用它的文件中declare _

 let timedata = { start_time: "9", end_time: "16", interval: "30" } let start_time = +timedata.start_time * 60; let end_time = +timedata.end_time * 60; let interval = +timedata.interval; let times = _ .range(start_time, end_time + interval, interval) .map((time) => [ _.floor(time / 60), _.padStart(time % 60, 2, '0') ].join(':')); console.log(times); 
 <script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM