如何遍历ruby中的哈希并确定最终值

bir*_*rdy 0 ruby

我有一个像这样打印的变量:

{:type1=>:poor, :type2=>:avg, :type3=>:best}
Run Code Online (Sandbox Code Playgroud)

我想迭代这个哈希并根据以下规则打印出最终值

  • 如果任何类型的:best值是最终值,则best
  • 如果任何类型的值是:avg,并且没有best那么最终值是avg
  • 否则最终价值是 poor

基本上最强的胜利.

我尝试了以下内容

def final_value(values)
  val = "poor"
  values.each do |key, val|

  end
  val
end
Run Code Online (Sandbox Code Playgroud)

Fre*_*red 5

使用哈希的has_value?方法.

val = :poor;
val = :avg  if values.has_value?(:avg);
val = :best if values.has_value?(:best);
val
Run Code Online (Sandbox Code Playgroud)

  • @alfasin`has_value?`方法的实现会进行迭代.迭代是必要的,它只是显式或隐式迭代的问题. (2认同)