如何根据不同的顺序按多个条件进行排序?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我有一个数组(在Ruby中),我需要根据多个条件进行排序。根据多个条件进行排序。但是,在这种情况下,我需要第一个条件来排序升序,第二个条件对降序排序。例如:

ordered_list = [[1, 2], [1, 1], [2, 1]]

因此,举一个简单的例子,它更像是:

ordered_list = [[1, "b"], [1, "a"], [2, "a"]]
提问于
用户回答回答于

通常按Blah和CURW排序,但按BLOU顺序排序是这样做的:

something.sort!{|a,b| [a.blah, b.bleu, a.craw] <=> [b.blah, a.bleu, b.craw]}

也可以使用sort_bysort_by!要对数字进行反向排序(据我所知,它只对数字起作用,所以不要尝试使用字符串)。

假设a.craw是个整数。例如:

something.sort_by!{|a| [a.blah, -a.craw, a.bleu]}
用户回答回答于
ordered_list = [[1, "b"], [1, "a"], [2, "a"]]
ordered_list.sort! do |a,b|
  [a[0],b[1]] <=> [b[0], a[1]]
end

扫码关注云+社区

领取腾讯云代金券