如何计算数组元素的运行总数?

awv*_*mer 2 arrays ruby-on-rails-3

我在Rails 3.1中以相对菜鸟的身份工作,并且已使用以下代码设法将用户的交易金额从数据库中提取到按日期排序的数组中(其中date和amount_cents是数据库属性):

@user_trans = User.transactions.order(“ date”)。map {| t | t.amount_cents}

=> [1000,-350,-250、600、750,-450]

我很容易得到数组的总数:

@ user_trans.sum => 1300

但是我无法弄清楚的是一种优雅的方法,可以遍历数组的每个元素,然后将第一个元素添加到第二个,第二个到第三个元素等,从而得出总计:

[1000、650、400、1000、1750、1300]

似乎.each或.inject将是使用的方法,但是在笨拙的多行hack之外,我还没有找到执行此操作的神奇语法,但是似乎应该有一种简化的方法。顺序很重要。也许从总数中倒退,然后倒退?

我满怀希望地坐在你的脚下... :)

Dyl*_*kow 5

这是一线。在to_i其中结果数组为空(需要处理的第一个元素nil.to_i将评估为0)。

@user_trans.inject([]) { |result, element| result << result.last.to_i + element }
Run Code Online (Sandbox Code Playgroud)