我有一个这样的哈希:
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.keys.group_by {|k| h[k][0]}
# => {:c1=>[:p1, :p3], :c3=>[:p2, :p4], :c6=>[:p5]}
关于ruby - 基于值比较收集哈希键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9378928/