Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 按相反顺序排序二维散列_Ruby_Sorting_Hash - Fatal编程技术网

Ruby 按相反顺序排序二维散列

Ruby 按相反顺序排序二维散列,ruby,sorting,hash,Ruby,Sorting,Hash,我有一个二维散列。我需要按值降序排列每个子散列 hsh={"a"=>{0=>1, 1=>2}} output= {"a"=>{1=>2,0=>1}} 谢谢,干杯 您不能影响hashmap元素的迭代或显示顺序(在ruby 1.9中,迭代(和显示)顺序保证与插入顺序相同,因此如果您从排序数组创建哈希,哈希也将被排序) 您所能做的就是将散列转换为数组并对其进行排序。比如: hsh.map {|k,v| [k, v.sort.reverse]} #=> [[

我有一个二维散列。我需要按值降序排列每个子散列

hsh={"a"=>{0=>1, 1=>2}}

output= {"a"=>{1=>2,0=>1}}

谢谢,干杯

您不能影响hashmap元素的迭代或显示顺序(在ruby 1.9中,迭代(和显示)顺序保证与插入顺序相同,因此如果您从排序数组创建哈希,哈希也将被排序)

您所能做的就是将散列转换为数组并对其进行排序。比如:

hsh.map {|k,v| [k, v.sort.reverse]}
#=> [["a", [[1, 2], [0, 1]]]]

散列是无序的集合。你不能自己下订单


按键或值遍历散列的顺序可能看起来是任意的,通常不按插入顺序。

在Ruby 1.9中,可以使用
散列[h.sort]
对散列排序。散列在Ruby 1.9中排序