2016-11-05 95 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(' ')