获取小时数的javascript函数,但是从一小时开始,每x小时一次

时间:2017-02-08 01:37:34

标签: javascript

这个函数mas有参数(startingHour,everyXhours);

此函数必须返回允许的小时数组。

可用时间[0 1,2 ... 22,23]所有小时数

想要一个函数来获取允许分隔everyXhours

的所有小时数组

1 个答案:

答案 0 :(得分:1)

好的,如果你不想超级优雅的话,这很简单。蛮力方法是用可能的值填充数组,然后过滤掉你不想要的数组。

function getHours(start, everyX) {
   const total = Array(24).fill().map((n, i) => { return i; });

   return total.filter((n) => {
     return (n === start || 
     ( n > start && n % everyX === 0));
   })
}

Working fiddle

<强>更新

好的,根据您的新要求,它仍然相当简单。您可以先旋转数组,然后再获取每个第n个项目,而不是纯过滤器。

function getHours(start, everyX) {
   const all = Array(24).fill().map((n, i) => { return i; });
   all.unshift.apply(all, all.splice( start, all.length ) );

   return all.filter((n, i) => {
     return i % everyX === 0;
   })
}