Uniq一列数组并加入另一列

时间:2017-10-30 13:18:13

标签: arrays ruby hash

我需要转换这个数组:

[{a: 1, b: 1}, {a: 1, b: 2}, {a: 2, b: 5}]

成:

[{a: 1, b: "1, 2"}, {a: 2, b: 5}]

任何简单的功能?

1 个答案:

答案 0 :(得分:7)

[{a: 1, b: 1}, {a: 1, b: 2}, {a: 2, b: 5}]
.group_by{|h| h[:a]}
.map{|a, h| {a: a, b: h.map{|h| h[:b]}.join(", ")}}
# => [{:a=>1, :b=>"1, 2"}, {:a=>2, :b=>"5"}]