【问题标题】:fix results of javascript loop修复javascript循环的结果
【发布时间】:2022-01-20 17:07:11
【问题描述】:

我有这个:

<% 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); %>
     <% } %>

它会返回这个:

[
  '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 分钟的间隔。所以它会返回

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

根据我的循环,我将如何做到这一点?

【问题讨论】:

    标签: javascript ejs


    【解决方案1】:

    使用 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); %>
    <% } %>
    

    【讨论】:

    • 太棒了,谢谢你的帮助:)
    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2013-09-13
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多