ruby API中的sort和sort_by方法可以很好的帮助我们对Hash进行排序:
For example:
h={'a'=>2, 'c'=>1, 'b'=>3}
sort 方法:
key升序:
h.sort { |a, b| a[0]<=>b[0] }
[["a", 2], ["b", 3], ["c", 1]]
key降序:
h.sort { |a, b| b[0]<=>a[0] }
[["c", 1], ["b", 3], ["a", 2]]
value升序:
h.sort { |a, b| a[1]<=>b[1] }
[["c", 1], ["a", 2], ["b", 3]]
value降序:
h.sort { |a, b| b[1]<=>a[1]
[["b", 3], ["a", 2], ["c", 1]]
sort_by方法:
value升序:
h.sort_by {|key,value| value}
[["c", 1], ["a", 2], ["b", 3]]
key升序:
h.sort_by {|key,value| key}
[["a", 2], ["b", 3], ["c", 1]]
针对哈希数组,同样可以用sort,sort_by以及比较操作符<=>进行排序。