我有一个这样的哈希:

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/

10-13 01:25