0

使用:

JSON.parse(response.read_body)

返回此哈希:

{
    "stats": {
        "2012-10-31": 2637, 
        "2012-10-30": 2873, 
        "2012-12-14": 2894, 
        "2012-12-08": 2906, 
        "2012-12-09": 3357, 
        "2012-11-30": 4959
    }
}

问题是日期键可以是任何日期值。

我想要所有值的总和。

4

2 回答 2

3

您可以使用 Ruby Enumerable 的 reduce方法。在我的示例中,我没有进行任何错误处理,但如果数据来自 API,您可能需要处理错误或丢失的数据。

JSON.parse(response.read_body)["stats"].reduce 0 do |memo, kvp|
   memo + kvp.last
end

编辑:

选项 2 是更多的忍者:

JSON.parse(response.read_body)["stats"].values.reduce(&:+)
于 2013-01-09T23:14:05.063 回答
3

如果你在 Rails 中,你可以使用Enumerable#sum

JSON.parse(response.read_body)["stats"].values.sum
于 2013-01-09T23:16:25.003 回答