如何按降序排列数组

我有一种方法可以在下面打印我的卡片。我想创建一种方法,以降序打印卡。我将不得不创建一个新方法。我已经尝试了几件事,但是我在这里。

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

hirxn45624 回答:如何按降序排列数组

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

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

例如,如果您有一个字符串集合,并且想要按长度对它们进行排序,则可以使用类似这样的方式,其中集合中的每个项目都映射为其大小/长度。第一个示例以升序对数组进行排序,第二个示例以降序对数组进行排序。

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

puts my_array.sort_by { |item| item.size }
puts my_array.sort_by { |item| -item.size }
本文链接:https://www.f2er.com/3130489.html

大家都在问