我如何用减少方法提高这个总和

Bri*_*ley 3 ruby reduce sum ruby-on-rails

我想使用该reduce方法来改进此总和,但是我发现对于求和而言效果很好,但我还必须做一个减法:

final = 0
@status.each do |data|
  final = final + data['pending_increase'] - data['pending_decrease']
end
Run Code Online (Sandbox Code Playgroud)

我要使用的方法是 Enumerable#reduce

pot*_*hin 5

像这样:

@status.reduce(0){|sum, data| sum + data['pending_increase'] - data['pending_decrease']}
Run Code Online (Sandbox Code Playgroud)

要么

@status.map{|data| data['pending_increase'] - data['pending_decrease']}.reduce(0, :+)
Run Code Online (Sandbox Code Playgroud)