【问题标题】:Sum all values from JSON response对 JSON 响应中的所有值求和
【发布时间】:2017-11-08 17:09:56
【问题描述】:

我有一个如下所示的 JSON 响应:

{  
   "km"   =>"32.381",
   "tarifa"   =>25.6
},
{  
   "km"   =>"23423",
   "tarifa"   =>235.6
},
...

我想得到所有 tarifas 的总和。我知道我需要为此使用map,但仍然对如何操作感到困惑。

【问题讨论】:

  • array.map { |obj| obj.tarifa }.sum

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5


【解决方案1】:

只需使用Array#sum:

array.sum { |e| e['tarifa'] }
#=> 261.2

【讨论】:

    【解决方案2】:

    使用reduce对列表的元素进行操作:

    arr.map { |elt| elt["tarifa"] }.reduce(:+)(可读方式)

    arr.reduce(0) { |acc, elt| acc + elt["tarifa"] }(以前的reduce方式,没有数组再生)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-08
      • 2021-12-07
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      相关资源
      最近更新 更多