按多个条件对数组进行排序

时间:2015-08-23 22:07:15

标签: arrays ruby sorting

我有一系列要点:

arr = [[2,0], [1,0], [2,1], [1,1]]

我如何按x先降序和升序对元素进行排序,然后按相似x值的y值进行排序?

max = [[2,1], [2,0], [1,1], [1,0]]
min = [[1,0], [1,1], [2,0], [2,1]]

1 个答案:

答案 0 :(得分:3)

min = arr.sort
# => [[1, 0], [1, 1], [2, 0], [2, 1]]
max = min.reverse
# => [[2, 1], [2, 0], [1, 1], [1, 0]]

如果性能是一个问题而不是简单,那么可以使用以下内容。

min = arr.sort_by(&:itself)