2016-11-05 45 views
0

我有一个如下所示的哈希值。如何从哈希中获得最高的第二个值

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

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

那么结果将是相同

puts "234 Bread 132.0" 
+0

假设三个值是'9.99','132.0','132.0'。 “9.99”是“第二高的价值”。那是你要的吗? –

回答

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

啊,谢谢。 .last嗯。 – jackneedshelp

+0

last或'value [1]' – Ursus

+0

或者你可以做'value [-1]' –

1

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

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