Ell*_*iot 19 ruby ruby-on-rails ruby-on-rails-3
所以我构建了一个自定义的用户数组,如:
[["user1",432],["user1",53],["user9",58],["user5",75],["user3",62]]
Run Code Online (Sandbox Code Playgroud)
我想按每个数组中的2n'd值对它们进行排序,从最大到最小.我有一种感觉使用sort或sort_by for arrays就是这样做的方法,但我不确定如何完成它
Jan*_*Jan 43
如果您对此感兴趣sort_by,可以对内部数组进行解构
array.sort_by { |_, x| x }.reverse
Run Code Online (Sandbox Code Playgroud)
或者调用索引运算符
array.sort_by { |x| x[1] }.reverse
Run Code Online (Sandbox Code Playgroud)
而不是反转你可以否定从块返回的值.
array.sort_by { |_, x| -x }
array.sort_by { |x| -x[1] }
Run Code Online (Sandbox Code Playgroud)
另一种替代方案是使用一种符号和Array#last.
array.sort_by(&:last).reverse
Run Code Online (Sandbox Code Playgroud)
使用的解决方案sort可能是
array.sort { |x, y| y[1] <=> x[1] }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29091 次 |
| 最近记录: |