如何从散列中获取最高的第二个值

时间:2016-11-05 10:33:03

标签: ruby

我有如下的哈希值。

myhash = {123=>["pizza", 9.99], 234=>["Bread", 132.0], 456=>["burgers", 5.24]}

我希望能够以某种方式让它只显示价格最高的物品,在这种情况下是面包。

所以结果与

相同
puts "234 Bread 132.0"

2 个答案:

答案 0 :(得分:4)

highest_priced_object = myhash.max_by { |id, (item, price)| price }

答案 1 :(得分:1)

Max_by接受一个块,您可以在其中定义您想要用于比较的值。在这种情况下,数组中的第二个(或最后一个)元素。 最后,join将所有内容连接成一个String。

myhash.max_by { |_, values| values.last }.join(' ')