ルビーはEnumerable#max
とEnumerable#max_by
を持っており、次のようにしてmax_by
を使用しています。同じ最大値を持つ複数の場合に配列として最大値を得る
array = [
{:a => 1, :b => 2, :c => 3},
{:a => 3, :b => 2, :c => 4},
{:a => 3, :b => 1, :c => 4}
]
max_item = array.max_by { |item| item[:b] }
=> {:b=>2, :c=>3, :a=>1}
したがって、同じ最大値を持つ2つの項目があるにもかかわらず、単一の最大値を返します(私が最初に考える)。そのような場合に両方の項目を与える関数を実装したいと思います。 max_by
のいくつかの変形がありますか、これについてはゼロから書く必要がありますか?
'group_by'について知りませんでした。きちんとした – Chowlett
私は 'group_by'について知っていましたが、このロジックを考えることができませんでした。私は論理を得るために投稿を2回読む必要がありました。 – rubyprince