Tag: 排序

按编号(最高的第一个)然后按字母(按字母顺序)对对象的集合进行排序

我正在建立一个小部件,以显示奥运会的奖牌数量。 我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,而“金”,“银”,“青铜”用于奖牌计数。 列表应该排序:1。首先通过总奖牌数2.如果相同的奖牌,按类型分类(金>银>铜,即两金> 1金+ 1银)3。如果相同的奖牌和类型,子 – 按字母顺序排列 我在ruby中这样做,但我认为语言并不重要。 我确实找到了一个解决方案,但如果感觉必须有更优雅的方式来做到这一点。 这是我做的: 使用加权奖牌总数创建虚拟属性。 因此,如果他们有2金和1银,加权总数将是“3.020100”。 1金,1银和1铜将是“3.010101” 由于我们希望将奖牌计数排在最前面,因此列表是按DESC排序的。 但是之后我们想要按字母顺序(即ASC)进行子排序。 所以我创建了一个字母反转单词的函数(即“canada”=>“xzmzwz”) 将加权总数转换为字符串,将反转名称连接起来(即“3010101xzmzwz”),然后按降序排序。 瞧。 到目前为止,有人已经想出如何在大约2行代码中做同样的事情。 关心赐教?

如何将Ruby中的数组排序为特定的顺序?

我想按照另一个数组中给出的特定顺序对数组进行排序。 EX:考虑一个数组 a=[“one”, “two”, “three”] b=[“two”, “one”, “three”] 现在我想按’b’的顺序对数组’a’进行排序,即 a.each do |t| # It should be in the order of ‘b’ puts t end 所以输出应该是 two one three 有什么建议?