2016-08-15 3 views
0

Hier bekomme ich bestellt Array von Wochentagen. Es funktioniert ok für mich, sieht aber schrecklich aus. Reiner Müll). Gibt es (ich bin mir sicher, dass es da ist) eine Möglichkeit, es zu refaktorisieren? (Um sauberer auszusehen?)Ein sauberer Weg zum Schreiben Schleife

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 

Antwort

0

Wie wäre es damit?

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"] 

Es gibt das gleiche Ergebnis wie oben, aber nur 1 Iteration.

0
(6.days.ago.to_date..Date.today).collect{|d|d.strftime('%A')} 
Verwandte Themen