【发布时间】:2016-02-27 13:36:33
【问题描述】:
我的 Ruby 任务是遍历哈希并返回与最小值关联的键,不使用,使用以下任何方法:
#keys #values #min #sort #min_by
我不明白如何遍历散列并在每对通过时存储它,将其与通过的最后一对进行比较,并返回最低的键。这是我的代码,向您展示我的思考过程,但它当然不起作用。关于如何做到这一点的任何想法?谢谢!
def key_for_min_value(name_hash)
index = 0
lowest_hash = {}
name_hash.collect do |key, value|
if value[index] < value[index + 1]
lowest = value
index = index + 1
key_for_min_value[value]
return lowest
end
end
end
【问题讨论】:
-
试试
Hash#each。hash.each do |k,v| ... end -
合适的解决方案当然是
hash.min_by(&:last).first。 -
那是什么?您想要 3 个最小值的键吗?使用 v2.2,没问题:
h.min_by(3,&:first).map(&:first).