1
我試圖重構一個寫得很差的方法。該方法是指掃描陣列包含平衡哈希看起來像這樣:如何簡化累計每月餘額的enum-ridden方法
{ amount: $123, month_end: '2013-01-31' }
,並與當月最後返回所有的餘額,然後總結出的數額。
def monthly_total(month)
balances = [ balance_1, balance_2 ]
# get and array of balances
balances_for_month = balances.select do |balance|
balance.month_end == month
end
# grab only the balances for the desired month
balance_amounts = balances_for_month.map do |balance|
balance.amount
end
#take all the balances for the month and sum them.
balance_amounts.inject{|sum,x| sum + x }
end
但是有一個更光滑的方法來做到這一點。我怎樣才能重構這個方法,以便它在原始數組上循環一次,而不是創建新的數組並循環遍歷它們?