首页 > 解决方案 > 从数组的哈希中选择属性中的最大值

问题描述

我有这个哈希:

h = {
  124 => ["shoes", "59.99"],
  456 => ["pants", "49.50"],
  352 => ["socks", "3.99"]
}

每个值都有两个元素。它们是名称(例如 、、"shoes")和价格(例如、和)。我需要选择价格最高的值。这将是价格的关键。如何选择价格最高的哈希?"pants""socks""59.99""49.50""3.99"124"59.99"

我试过这个:

h.select{ |x| x[1] }.max
#=> [456, ["pants", "49.50"]]

但这给了我最大值并返回 key 456

标签: arraysrubyhash

解决方案


最惯用的可能是这样的:

h.max_by { |_, v| v.last.to_f }
#=> [124, ["shoes", "59.99"]]

推荐阅读