我有一个2-d hash.I需要按降序对每个子哈希值进行排序。
hsh={"a"=>{0=>1, 1=>2}}
output= {"a"=>{1=>2,0=>1}}
谢谢&干杯!
答案 0 :(得分:2)
你不能影响hashmap元素迭代或显示的顺序(在ruby 1.9中迭代(和显示)顺序保证与插入顺序相同,所以如果你从排序数组创建哈希,哈希也将被排序。)
您所能做的就是将哈希变成一个数组并对其进行排序。像:
hsh.map {|k,v| [k, v.sort.reverse]}
#=> [["a", [[1, 2], [0, 1]]]]
答案 1 :(得分:0)
哈希是UNORDERED系列。您无法设置自己的订单。
The order in which you traverse a hash by either key or value may seem arbitrary, and will generally not be in the insertion order.