怎么在ruby中使用sort_by(for rails)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我建立了一个像这样的自定义用户数组:

[["user1",432],["user1",53],["user9",58],["user5",75],["user3",62]]

我想按照每个数组中的2n'd值对它们进行排序,从最大到最小。我有一种使用sort或sort_by来实现数组的方式,但我不确定如何实现它

提问于
用户回答回答于

sort_by

如果你有兴趣sort_by,你可以解构你的内部数组

array.sort_by { |_, x| x }.reverse

或者调用索引操作符

array.sort_by { |x| x[1] }.reverse

可以否定从块返回的值。

array.sort_by { |_, x| -x }
array.sort_by { |x| -x[1] }

另一种选择是使用&符号Array#last

array.sort_by(&:last).reverse

sort

使用的解决方案sort可能是

array.sort { |x, y| y[1] <=> x[1] }
用户回答回答于

扫码关注云+社区