如何在Ruby中以字典顺序对数组元素进行排序

Mag*_*gie 1 ruby sorting

我有一个阵列

arr = [[1,2],[2,3],[2,1],[0,1]]
Run Code Online (Sandbox Code Playgroud)

我希望他们有条不紊:

arr = [[0,1],[1,2],[2,1],[2,3]]
Run Code Online (Sandbox Code Playgroud)

我想用Ruby的sort_by方法来做这件事.我怎么能在这样的Ruby中对两个级别的数组进行排序?

Eri*_*nil 6

Array#sort默认情况下按字典顺序对子数组进行排序(请参阅参考资料Array#<=>).您不需要定义任何内容:

[[1,2],[2,3],[2,1],[0,1]].sort
# => [[0, 1], [1, 2], [2, 1], [2, 3]]
Run Code Online (Sandbox Code Playgroud)

如果你真的想用sort_by:

[[1,2],[2,3],[2,1],[0,1]].sort_by(&:itself)
# => [[0, 1], [1, 2], [2, 1], [2, 3]]
Run Code Online (Sandbox Code Playgroud)