按值排序,在平等的情况下键

时间:2015-02-15 02:40:15

标签: ruby

我希望按值排序Ruby中的Hash,然后在相等的情况下按键排序。 我尝试了这个,但它返回相同的数组:

 hash.sort { |x, y|
  if x[1] == y[1]
    comp = x[0] <=> y[0]
  else
    comp =  x[1] <=> y[1]
  end
  comp
 }

1 个答案:

答案 0 :(得分:6)

hash.sort {|h1,h2| h1.reverse <=> h2.reverse }

或简单地说:

hash.sort_by(&:reverse)

如果你想让哈希作为回应:

Hash[ hash.sort_by(&:reverse) ]