在散列中查找最低值

时间:2012-01-01 22:30:34

标签: ruby

a = { 
      1 => ["walmart", "walmart.com", 300.0], 
      2 => ["amazon", "amazon.com", 350.0], 
      ...
    } 

如何在数组中找到浮点值最小值的元素?

3 个答案:

答案 0 :(得分:26)

min_by可用作Enumerable模块中的方法。

它获取Hash中所有值的数组,然后根据每个数组的最后一个元素选择最小值。

a.values.min_by(&:last)

答案 1 :(得分:3)

另一个有用的方法是来自 Enumerable 模块的sort_by。它将按升序排列您的哈希值。然后用first链接方法以获取最低值。

a.sort_by { |key, value| value }.first

答案 2 :(得分:-4)

请参阅以下答案中的min_by解决方案。正如评论中指出的那样,我对这个问题的原始答案效率较低。