阵列具有:Ruby on Rails的 - 获取在阵列中的多个按键max和总和组在同一时间
[ { 'a' => 1, 'b' => 1, 'c' => 1, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 1, 'c' => 2, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 1, 'c' => 3, 'd' => 1, 'e' => 2},
{ 'a' => 1, 'b' => 2, 'c' => 4, 'd' => 2, 'e' => 2 },
{ 'a' => 1, 'b' => 2, 'c' => 5, 'd' => 2, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 6, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 7, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 1, 'c' => 8, 'd' => 3, 'e' => 2 },
{ 'a' => 2, 'b' => 2, 'c' => 9, 'd' => 4, 'e' => 2 },
{ 'a' => 2, 'b' => 2, 'c' => 10, 'd' => 4, 'e' => 2 } ]
我想分组“C”,和“d”,和“E”的最大值由'a'和'b'组成。
所以,结果应该是:
[ { 'a' => 1, 'b' => 1, 'c' => 3, 'd' => 3, 'e' => 6},
{ 'a' => 1, 'b' => 2, 'c' => 5, 'd' => 4, 'e' => 4},
{ 'a' => 2, 'b' => 1, 'c' => 8, 'd' => 9, 'e' => 6},
{ 'a' => 2, 'b' => 2, 'c' => 10, 'd' => 8, 'e' => 4} ]
到目前为止,我跟着How to find max value grouped by multiple keys in array of hashes?,使用此代码来获得各组
a.group_by { |h| h.values_at("a", "b") }.map { |_, v| v.max_by { |h| h["c"] } }
的最大请指引我,让总和了。非常感谢。
P/S:使用Ruby 1.8.7和Rails 2.3.5
如果我的问题重复,那么可以给我一样的吗?谢谢 – Anh 2015-02-12 02:50:52