Arrays 如何按降序排列数组

Arrays 如何按降序排列数组,arrays,ruby,sorting,Arrays,Ruby,Sorting,我有一种方法可以在下面打印出我的卡片。我想创建一个方法,以降序打印卡片。我必须创建一个新方法。我试过几件事,但现在我来了 def print_cards cards.all.each.with_index(1) do |card, index| puts "#{index}. #{card.name}" end end 您应该使用Ruby模块的sort_by方法 基本思想是提供一个块,将枚举中的每个值映射为一个数值,该数值可

我有一种方法可以在下面打印出我的卡片。我想创建一个方法,以降序打印卡片。我必须创建一个新方法。我试过几件事,但现在我来了

    def print_cards    
      cards.all.each.with_index(1) do |card, index|
        puts "#{index}. #{card.name}"
      end 
    end 


您应该使用Ruby模块的sort_by方法

基本思想是提供一个块,将枚举中的每个值映射为一个数值,该数值可用于对集合进行排序

例如,如果您有一个字符串集合,并且希望按长度对其进行排序,则可以使用类似的方法,其中集合中的每个项都映射到其大小/长度。第一个示例按升序排序数组,而第二个示例按降序排序

my_array = ["a", "aa", "aaaa", "aaa"]

puts my_array.sort_by { |item| item.size }
puts my_array.sort_by { |item| -item.size }

您能否展示一下
卡片的样子以及实际和预期结果的具体示例?谢谢。妈的,那太干净了。我总是做完整的a,b | a b,然后用b a交换反向排序。但你这样做实际上更干净