Arrays 如何计算数组元素的运行总数?
我在Rails 3.1中作为一个相对的noob工作,并使用以下代码将用户交易金额从数据库提取到一个日期排序数组中(其中日期和金额是数据库属性): @user|trans=user.transactions.order(“date”).map{t|t.amount_cents} =>[1000,-350,-250600750,-450] 我可以通过以下方式轻松获得阵列的总数: @用户_trans.sum=>1300 但我无法理解的是,迭代数组中的每个元素并将第一个元素添加到第二个元素、第二个元素添加到第三个元素等等的优雅方式,从而生成运行总数: [1000650400100017501300] 似乎.each或.inject将是使用的方法,但除了笨拙的多行攻击之外,我还没有找到实现这一点的神奇语法,但似乎应该有一种简化的方法。秩序很重要。也许从总量中退出来,然后再倒过来Arrays 如何计算数组元素的运行总数?,arrays,ruby-on-rails-3,Arrays,Ruby On Rails 3,我在Rails 3.1中作为一个相对的noob工作,并使用以下代码将用户交易金额从数据库提取到一个日期排序数组中(其中日期和金额是数据库属性): @user|trans=user.transactions.order(“date”).map{t|t.amount_cents} =>[1000,-350,-250600750,-450] 我可以通过以下方式轻松获得阵列的总数: @用户_trans.sum=>1300 但我无法理解的是,迭代数组中的每个元素并将第一个元素添加到第二个元素、第二个元素添
我满怀希望地坐在你脚下……:) 这是一条单行线。处理结果数组为空的第一个元素时必须使用
to\u i
(nil.to\u i
将计算为0
)
@user_trans.inject([]){| result,element | result真棒!非常优雅。这是我丢失的最后一个选择器。谢谢。
@user_trans.inject([]) { |result, element| result << result.last.to_i + element }