use*_*199 3 ruby arrays sorting ruby-on-rails
我有一个用户记录数组,我想根据优先级对用户进行排序,优先级存储在一个字符串数组中,这个数组总是在变化.
所以,如果我有用户=
User id: 1, username: "so_admin", priority: "Monday"
User id: 2, username: "so_staff", priority: "Wednesday"
Run Code Online (Sandbox Code Playgroud)
优先= ["星期三","星期二","星期五"]
如何对用户进行排序,以便首先列出优先级为"星期三"的用户,等等.
你可以这样做
users.sort_by { |u| priority.index(u.priority) || priority.size }
Run Code Online (Sandbox Code Playgroud)
完成上述排序,假设下面Array将根据您的需要进行排序,将保留所有uniq值.users然后,数组将使用已排序数组的索引.
priority = ["Wednesday","Tuesday","Friday"]
Run Code Online (Sandbox Code Playgroud)
返回索引的第一对象在
ary使得对象是==给obj.nil如果找不到匹配则返回.
priority数组不是所有工作日,而是3.我想,如果任何用户具有优先级(priority数组中不存在),请将这些用户放在最后一个数组中.假设,任何用户有一个优先级,"Sunday"那么,该用户将被给予最低优先级.怎么样 ?
看看表达式priority.index(u.priority) || priority.size,现在用上面提到的样本,priority.index("sunday")给出nil,并且将评估右侧的表达式||,即priority.size哪个3.那怎么是user将被移动到尾部的的阵列.
| 归档时间: |
|
| 查看次数: |
924 次 |
| 最近记录: |