我想從一個散列返回最低值的ID名稱:紅寶石:返回最低變量
{var1:345 , var2:764 , var3:126 }.return_lowest_value_id => "var3"
什麼是最優雅的紅寶石的方式,而不IF語句來做到這一點?
我想從一個散列返回最低值的ID名稱:紅寶石:返回最低變量
{var1:345 , var2:764 , var3:126 }.return_lowest_value_id => "var3"
什麼是最優雅的紅寶石的方式,而不IF語句來做到這一點?
在使用散列的情況下,你可以試試這個:
{var1:345 , var2:764 , var3:126 }.sort_by { |k, v| v }.first[0] # => :var3
作爲另一種選擇,你可以使用min_by
方法:
{var1:345 , var2:764 , var3:126 }.min_by { |k, v| v }[0] # => :var3
工程就像一個魅力!謝謝! –
基蘭,如果有兩個或更多的變量具有相同的最低值,你會想要什麼樣的行爲? –
他們可以選擇行中的第一個,只要有一個返回 –
爲什麼你關心的變量名,而比價值? – delnan
它是var值的「id」。也許這需要一個哈希?例如: '{var1:345,var2:764,var3:126} .return_lowest_value_id =>「var3」' –
這是一個常見的初學者問題,它確實不是您需要做的事情。不要將代碼設計爲依賴於變量名稱。 –