2016-08-15 77 views
0

这里我得到有序的工作日数组。它适用于我,但看起来非常糟糕。纯垃圾)。有没有(我确定有一个)重构它的任何方式?(看起来更清洁?)一个干净的方式来写循环

def weekdays 
    (deduct_weekdays.map{|day| day.strftime("%A")}).reverse! 
    end 

    private 
    def deduct_weekdays 
    arr = [] 
    @n = 0 
    7.times do 
    arr << DateTime.now - @n  
    @n += 1 
    end 
    arr 
end 

回答

0

这是怎么回事?

require 'date' 

def deduct_weekdays 
    arr = [] 
    n = 0 
    7.times do 
    arr << (Date.today - n).strftime("%A") 
    n += 1 
    end 
    arr.reverse! 
end 

# returns: 
["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday"] 

它返回与上面相同的结果,但只有1次迭代。

0
(6.days.ago.to_date..Date.today).collect{|d|d.strftime('%A')} 
相关问题