オブジェクトの配列があり、フィールドの 1 つはそれらのオブジェクトの「スコア」です。
最大値を持つオブジェクトを取得する方法を知っています:
array.max_by do |element|
element.score
end
しかし、最大のスコアを持つ (順序付けられた) N 個 (たとえば 3 個) のオブジェクトを取得するにはどうすればよいでしょうか? 配列の要素が N 未満である可能性があることを考慮してください。
編集:
たとえば、次のようになります。
[{score:10}, {score:5}, {score:7}, {score:8}]
そしてN=3
返す必要があります:[{score:10}, {score:8}, {score:7}]