Получить первые n элементов из ruby-массива хеш-значений

Эй, у меня есть массив, где каждый элемент хэш, содержащий несколько значений и количество.

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 лучших записей на основе количества (а не только первого(n)) Is есть элегантный способ сделать это? Итак, в качестве примера, пусть n = 1, я бы ожидал набора результатов.

[{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}]

так как я попросил все записи с наивысшим баллом.. если бы я попросил 2 лучших балла, я бы получил

 [{"count" => 10,"name" => "user2"}, {"count" => 10, "user3"}, {"count" => 3, "user1"}]
9
задан Emmanuel P 19 June 2012 в 05:28
поделиться