给定数组的散列,我需要得到数组的第一个元素最小的键。
例如,对于:
h = { :a => [8,9,1], :b => [7,2,3], :c => [1,7,3] }
我希望得到:c ,因为 1 是[8,7,1]的最小值
我怎样才能优雅地做到这一点?
答案 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]