如何在.each代码块中添加

时间:2014-01-28 18:21:58

标签: ruby-on-rails ruby arrays

我在ruby数组中有8个事务(@transactions),每个事务都有一个与之关联的数字值,我需要添加它来获取一个数字,即每个事务数量的总和。如何使用代码块将数字添加到一起?代码块是迭代获得总数的最佳方式吗?

@transactions.each do | t |

  # ??

end

3 个答案:

答案 0 :(得分:4)

Ruby on rails有一个sum函数:

@transactions.sum { |t| t.number_value }

或者如果您想要更加简洁

@transactions.sum(:number_value)

答案 1 :(得分:2)

使用Enumerable#reduce

执行以下操作
@transactions.reduce(0) { |sum,ob| sum + ob.number_val }

答案 2 :(得分:-1)

尝试以下代码。虽然这个问题可能早就得到了回答。您应该在发布之前先将问题谷歌。

@transaction.inject(0){|sum,x| sum + x.number_value }