这是我的哈希:
{"graph"=>[{"1"=>16, "2"=>44, "3"=>53, "4"=>53, "5"=>80, "6"=>71, "7"=>63, "8"=>54, "9"=>53, "10"=>44, "11"=>76, "12"=>82, "13"=>66, "14"=>59, "15"=>64, "16"=>39, "17"=>19, "18"=>14, "19"=>5, "20"=>6, "21"=>5, "22"=>7, "23"=>6, "24"=>7}]}
我正在尝试获取每个值并将它们添加到一起。长而不正确的方法是获取每个值并将它们加在一起如下:
first_number = json["graph"][0]["1"]
second_number = json["graph"][0]["2"]
如何简化此操作以获得总计数?
答案 0 :(得分:6)
如果你需要的只是这些价值的总和......
json['graph'][0].values.inject{|sum,val| sum+val}
如果您使用的是rails,则可以选择使用sum
方法:
json['graph'][0].values.sum
inject
获取给定块并对Array中的每个元素执行一次块。 val
是要评估的当前值,sum
是最后从块返回的值。因此,如果每次块运行时添加两个并返回结果,您将在执行结束时得到值的总和。
您可以在此处查看文档:{{3}}