Ruby:返回最低变量的名称

Kie*_*sen 0 ruby

我想从哈希返回最低值的id:

{var1:345 , var2:764 , var3:126 }.return_lowest_value_id => "var3"
Run Code Online (Sandbox Code Playgroud)

没有IF语句,最优雅的Ruby方法是什么?

War*_*Hog 5

在使用哈希的情况下,您可以尝试这样做:

{var1:345 , var2:764 , var3:126 }.sort_by { |k, v| v }.first[0]  # => :var3
Run Code Online (Sandbox Code Playgroud)

作为另一种选择,您可以使用min_by方法:

{var1:345 , var2:764 , var3:126 }.min_by { |k, v| v }[0]  # => :var3
Run Code Online (Sandbox Code Playgroud)