我有这样的哈希:
h={
:p1 => [:c1,:c2],
:p2 => [:c3,:c4],
:p3 => [:c1,:c5],
:p4 => [:c3,:c2],
:p5 => [:c6,:c7]
}
我想找到一个很好的Ruby函数,它返回一个像这样的数组:
res=[[:p1,:p3],[:p2,:p4]]
每个子数组由相关的第一个值相等的散列键组成::p1
和:p3
:c1
作为起始值,:p2
和{{ 1}} :p4
。
答案 0 :(得分:5)
这是怎么回事?
h.keys.group_by {|k| h[k][0]}
# => {:c1=>[:p1, :p3], :c3=>[:p2, :p4], :c6=>[:p5]}