修复 javascript 循环的结果

fix results of javascript loop

我有这个:

<% var arrayOfTimes = []; %>
 <% for (var i = 0; i <= 24; i++) { %>
   <% var n = i%2==0 ? i/2+':00' : (i+1)/2-1+':30'; %>
     <% if(n<10) %>
       <% n = ''+n; %>
       <% arrayOfTimes.push(n); %>
       <% console.log(arrayOfTimes); %>
     <% } %>

它return是这样的:

[
  '0:00',  '0:30',  '1:00',
  '1:30',  '2:00',  '2:30',
  '3:00',  '3:30',  '4:00',
  '4:30',  '5:00',  '5:30',
  '6:00',  '6:30',  '7:00',
  '7:30',  '8:00',  '8:30',
  '9:00',  '9:30',  '10:00',
  '10:30', '11:00', '11:30',
  '12:00'
]

但现在我希望它实际上有 15 分钟的间隔。所以它会 return

[
  '0:00', '0:15', '0:30'
]

我将如何根据我的循环执行此操作?

使用 48 次迭代而不是 24 次。然后您可以使用 i%4 作为刻钟分钟数组的索引。

<% var arrayOfTimes = []; %>
 <% for (var i = 0; i <= 48; i++) { %>
   <% var n = Math.floor(i/4) + [":00", ":15", ":30", ":45"][i%4]; %>
   <% if(n<10) %>
       <% n = ''+n; %>
   <% arrayOfTimes.push(n); %>
   <% console.log(arrayOfTimes); %>
<% } %>