小编And*_*ton的帖子

Ruby Array按2种不同方式排序

我有一个对象数组,我试图按多个标准排序.大多数比较只是<=>在他们的哈希上进行,所以使用sort_by非常快,但其中一个更复杂.

这个阵列是足球队的,目前它的排序方式如下:

teams.sort_by { |item| [item.points, item.goal_dif, item.goals] }
Run Code Online (Sandbox Code Playgroud)

但是,如果最后2支球队在这3个领域拥有相同的值,我希望决胜局是我所做的功能a_beat_b(teamA, teamB).

我尝试使用Array.sort,但sort_by与前几个相比,它非常慢...我的实现是这样的:

teams.sort ( |a,b| [a.points, a.goals_dif, a.goals] <=> [b.points, b.goals_dif, b.goals])
与sort_by相比,它非常慢.points,goals_dif和目标的函数需要一些简单的查询,但如果它必须做数百个就会陷入困境.

我不擅长Ruby,所以不确定把我a_beats_b放在哪里.(如果A击败,则返回1,0或-1,对B进行抽取或丢失,具有代表性)

ruby arrays sorting

5
推荐指数
1
解决办法
116
查看次数

标签 统计

arrays ×1

ruby ×1

sorting ×1