Tha*_*lai 3 ruby ruby-on-rails
我有用户个人资料列表。我需要根据以下标准对用户配置文件进行排序,如下所示:
profile_claimed(boolean) -> profile_complete_status(integer) -> No_of_friends(integer)
Run Code Online (Sandbox Code Playgroud)
代码:
user_profiles.sort { |x| [x.claim ? 0 : 1, x.complete_profile_status, x.no_of_friends] }
Run Code Online (Sandbox Code Playgroud)
如何对用户配置文件进行排序?
你可以使用sort_by:
user_profiles.sort_by do |x|
[(x.claim ? 0 : 1), x.complete_profile_status, x.no_of_friends]
end
Run Code Online (Sandbox Code Playgroud)
此外,值得注意的sort_by是,通常比sort因为它缓存比较操作的结果更快,在这种情况下是
(x.claim ? 0 : 1), x.complete_profile_status, x.no_of_friends
Run Code Online (Sandbox Code Playgroud)
并且不会为两个元素之间的每次比较重新计算值。
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |