0

给定一个数组哈希,我需要获取数组第一个元素最小的键。

例如,对于:

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

我想得到:c作为结果,因为1是 [8,7,1] 的最小值

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

4

2 回答 2

3
h.key(h.values.min_by &:first)
于 2012-09-27T15:17:42.953 回答
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]
于 2012-09-27T15:22:55.627 回答