Привет, у меня есть массив, в котором каждый элемент является хешем, содержащим несколько значений и счет.
result = [
{"count" => 3,"name" => "user1"},
{"count" => 10,"name" => "user2"},
{"count" => 10, "user3"},
{"count" => 2, "user4"}
]
Я могу сортировать массив по счету следующим образом:
result = result.sort_by do |r|
r["count"]
end
Теперь я хочу иметь возможность извлекать верхние n записей на основе count (а не только сначала (n)). Есть ли элегантный способ сделать это? Итак, в качестве примера, пусть n = 1, я ожидал бы набор результатов.
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}]
так как я попросил все записи с наивысшим результатом. Если бы я попросил высшие 2 наивысших оценки, я бы получил
[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}, {"count" => 3, "user1"}]