【发布时间】:2013-10-01 00:03:33
【问题描述】:
我有一个哈希数组,想总结选定的值。我知道如何将它们全部或其中之一相加,但不知道如何选择多个键。
即:
[{"a"=>5, "b"=>10, "active"=>"yes"}, {"a"=>5, "b"=>10, "active"=>"no"}, {"a"=>5, "b"=>10, "action"=>"yes"}]
总结一下我使用的所有这些:
t = h.inject{|memo, el| memo.merge( el ){|k, old_v, new_v| old_v + new_v}}
=> {"a"=>15, "b"=>30, "active"=>"yesnoyes"} # I do not want 'active'
总结一个关键,我这样做:
h.map{|x| x['a']}.reduce(:+)
=> 15
如何汇总键“a”和“b”的值?
【问题讨论】:
-
为什么不直接做
h.map{|x| x['a'] + x['b'] }.reduce(:+)? -
感谢@kardeiz 的评论。但它返回 45。我应该说得更清楚......我想要的是:{'a'=>15, 'b'=>30}
标签: ruby arrays hash ruby-on-rails-4 inject