ruby中的Hash排序

  • Post author:
  • Post category:其他



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以及比较操作符<=>进行排序。



版权声明:本文为xing102172原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。