我试图按值对特定哈希进行排序。我遇到了一种使用方法的方法sort_by
。但即使我调用sort_by
哈希,它也会返回一个数组,即:
a = {}
a[0] = "c"
a[1] = "b"
a[2] = "a"
a.sort_by{|key, value| value}
# => [[2, "a"], [1, "b"], [0, "c"]]
如果我尝试将结果转换为散列,我最终会得到一个按键排序的散列,因此sort_by
失去了整个目的。IE:
a = {}
a[0] = "c"
a[1] = "b"
a[2] = "a"
Hash[*a.sort_by{|key, value| value}.flatten]
# => {0=>"c", 1=>"b", 2=>"a"}
有没有一种方法可以按值对哈希进行排序,然后以哈希的形式返回结果?
我正在使用 1.8.6 红宝石