我在Rails控制器中创建了以下哈希:
myObject = []
....
users.each do |u|
myObject << {
user_id: u.id,
display_name: u.display_name,
points: u.logs.sum(:points)
}
end
如何按点对myObject进行排序,高&gt;低?
由于
答案 0 :(得分:1)
只需在myObject
阵列上使用sort_by!
:
myObject = []
users.sort_by { |user| user }.each do |u|
myObject << {
user_id: u.id,
display_name: u.display_name,
points: u.logs.sum(:points)
}
end
myObject.sort_by! { |user| user[:points] }
如果您想以相反的顺序,请致电reverse!
:
myObject.sort_by! { |user| user[:points] }.reverse!
或者,您可以使用sort!
:
myObject.sort! do |user1, user2|
user2[:points] <=> user1[:points]
end
如果您想以相反的顺序更改比较对象的顺序,请执行以下操作:
myObject.sort! do |user1, user2|
user1[:points] <=> user2[:points]
end