该解决方案有效:
a = [[1], [2, 3], [4, 5, 6, 7], [8, 9]]
a.sort_by! { |array| -array.length }
#=> [[4, 5, 6, 7], [8, 9], [2, 3], [1]]
我正在使用sort_by方法并按长度从最大到最小排序。
这个解决方案更具可读性并且也有效,但速度有点慢:
a = [[1], [2, 3], [4, 5, 6, 7], [8, 9]]
a.sort_by(&:length).reverse!
#=> [[4, 5, 6, 7], [8, 9], [2, 3], [1]]
我正在使用sort_by使用 length 的方法,它将按长度从小到大对数组进行排序。然后我用reverse!方法使其按从大到小的顺序排列。