Enumerable#max_by
and Enumerable#min_by
return one of the relevant elements (presumably the first one) when there are multiple max/min elements in the receiver. For example, the following:
[1, 2, 3, 5].max_by{|e| e % 3}
returns only 2
(or only 5
).
Instead, I want to return all max/min elements and in an array. In the example above, it would be [2, 5]
(or [5, 2]
). What is the best way to get this?
group_by
is nice, but I think you can improve a step further by replacingsort
withmax_by
on the keys. – Masurium