相关疑难解决方法(0)

如何找到最大值哈希的密钥?

我有以下哈希 {"CA"=>2, "MI"=>1, "NY"=>1}

如何使用ruby返回最大键值对?我希望它返回"CA"

ruby hash

103
推荐指数
5
解决办法
6万
查看次数

如何在哈希数组中找到最大值?

鉴于这里的哈希数组:

arr = [{:question_type=>"Fire", :total=>0.0}, {:question_type=>"Water", :total=>0.0}, {:question_type=>"Metal", :total=>0.0}, {:question_type=>"Earth", :total=>0.0}, {:question_type=>"Wood", :total=>100.0}]
Run Code Online (Sandbox Code Playgroud)

我想选择总键值最高的哈希值。所以下面的代码似乎可以完成工作

max = arr.max_by{|x| x[:total]}
puts max[:question_type]
#=> Wood
Run Code Online (Sandbox Code Playgroud)

但是,如果我有 2 个具有相同值的哈希,它将只返回第一个

arr2 = [{:question_type=>"Fire", :total=>0.0}, {:question_type=>"Water", :total=>0.0}, {:question_type=>"Metal", :total=>0.0}, {:question_type=>"Earth", :total=>50.0}, {:question_type=>"Wood", :total=>50.0}]

max = arr2.max_by{|x| x[:total]} #it should be arr2
puts max[:question_type]
#=> Earth
Run Code Online (Sandbox Code Playgroud)

什么是得到它返回的最佳方式Earth,并Wood在情况下,两个都是最高值?

ruby arrays ruby-on-rails

1
推荐指数
1
解决办法
1256
查看次数

标签 统计

ruby ×2

arrays ×1

hash ×1

ruby-on-rails ×1