2016-08-15 76 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')} 
相關問題