Hey Tôi có một mảng trong đó mỗi phần tử là một băm có chứa một vài giá trị và một số đếm.Lấy các phần tử n hàng đầu từ mảng ruby của các giá trị băm
result = [
{"count" => 3,"name" => "user1"},
{"count" => 10,"name" => "user2"},
{"count" => 10, "user3"},
{"count" => 2, "user4"}
]
tôi có thể sắp xếp các mảng bằng cách đếm như sau:
result = result.sort_by do |r|
r["count"]
end
Bây giờ tôi muốn để có thể lấy các mục n hàng đầu dựa trên số lượng (không chỉ đầu tiên (n)) Có một cách thanh lịch để làm điều này? Vì vậy, ví dụ, hãy n = 1 tôi mong đợi một tập kết quả.
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}]
kể từ khi tôi yêu cầu tất cả các mục có số điểm cao nhất .. nếu tôi hỏi cho top 2 điểm cao nhất tôi muốn có được
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}, {"count" => 3, "user1"}]
Tuyệt vời. Cảm ơn rất nhiều vì đã giúp đỡ. –