繁体   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