How to find a min/max with Ruby

obuzek picture obuzek · Aug 31, 2009 · Viewed 263.3k times · Source

I want to use min(5,10), or Math.max(4,7). Are there functions to this effect in Ruby?

Answer

theIV picture theIV · Aug 31, 2009

You can do

[5, 10].min

or

[4, 7].max

They come from the Enumerable module, so anything that includes Enumerable will have those methods available.

v2.4 introduces own Array#min and Array#max, which are way faster than Enumerable's methods because they skip calling #each.

@nicholasklick mentions another option, Enumerable#minmax, but this time returning an array of [min, max].

[4, 5, 7, 10].minmax
=> [4, 10]