我有一个像这样的哈希表:
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
和:p4
具有:c3
。
我有一个像这样的哈希表:
h={
:p1 => [:c1,:c2],
:p2 => [:c3,:c4],
:p3 => [:c1,:c5],
:p4 => [:c3,:c2],
:p5 => [:c6,:c7]
}
res=[[:p1,:p3],[:p2,:p4]]
每个子数组由哈希键组成,其关联的第一个值相等::p1
和:p3
具有:c1
作为起始值,:p2
和:p4
具有:c3
。
这样行吗?
h.keys.group_by {|k| h[k][0]}
# => {:c1=>[:p1, :p3], :c3=>[:p2, :p4], :c6=>[:p5]}