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
但是有一个更光滑的方法来做到这一点。我怎样才能重构这个方法,以便它在原始数组上循环一次,而不是创建新的数组并循环遍历它们?