如何按降序对数组进行排序?

anu*_*rag 5 ruby sorting

我有一个数组:

a = [ 0,9,6,12,1]
Run Code Online (Sandbox Code Playgroud)

我需要一种方法按降序排序:

a = [12,9,6,1,0]
Run Code Online (Sandbox Code Playgroud)

为了按升序排序我有一个Ruby函数a[].to_a.sort,我正在寻找一个函数来按降序对数组进行排序.

Aru*_*hit 15

做如下

 a = [ 0,9,6,12,1]
 sorted_ary = a.sort_by { |number| -number }
 # or 
 sorted_ary = a.sort.reverse
Run Code Online (Sandbox Code Playgroud)

更新

另一个好方法:

a.sort {|x,y| -(x <=> y)}
Run Code Online (Sandbox Code Playgroud)

  • 只是一个注释,后一种形式比前者更快,应该是首选. (4认同)