找到特定array-as-value的哈希键

时间:2012-09-27 15:12:45

标签: ruby

给定数组的散列,我需要得到数组的第一个元素最小的键。

例如,对于:

h = { :a => [8,9,1], :b => [7,2,3], :c => [1,7,3] }

我希望得到:c ,因为 1 是[8,7,1]的最小值

我怎样才能优雅地做到这一点?

2 个答案:

答案 0 :(得分:3)

h.key(h.values.min_by &:first)

答案 1 :(得分:0)

h.sort_by { |k,v| v[0] }[0][0]
# or (equivalent)
h.sort_by { |k,v| v.first }.first.first

通过使用默认数组比较器,甚至可以缩短为:

h.sort_by { |k,v| v }[0][0]