怎么样:
ordered_list = [[1, "b"], [1, "a"], [2, "a"]]
ordered_list.sort! do |a,b|
[a[0],b[1]] <=> [b[0], a[1]]
end
我正在做一个噩梦,试图找出如何反转特定属性的排序,但通常对其他两个进行排序.只是关于那些在此之后出现并且被| a,b |混淆的排序的注释 块语法.您不能使用或使用{|a,b| a.blah <=> b.blah}
块样式.它必须与或一起使用.此外,如前所述,其他海报交换并跨越比较运算符以反转排序顺序.像这样:sort_by!
sort_by
sort!
sort
a
b
<=>
要通过blah和craw正常排序,但按相反的顺序按蓝色排序,请执行以下操作:
something.sort!{|a,b| [a.blah, b.bleu, a.craw] <=> [b.blah, a.bleu, b.craw]}
也可以使用-
标志sort_by
或sort_by!
做在数字反向排序(据我所知它仅适用于数字,所以不要用字符串作为它只是错误的尝试,并杀死页).
假设a.craw
是一个整数.例如:
something.sort_by!{|a| [a.blah, -a.craw, a.bleu]}