In Ruby, what is the cleanest way of obtaining the index of the largest value in an array?

Cary Swoveland picture Cary Swoveland · Jan 27, 2010 · Viewed 24.5k times · Source

If a is the array, I want a.index(a.max), but something more Ruby-like. It should be obvious, but I'm having trouble finding the answer at so and elsewhere. Obviously, I am new to Ruby.

Answer

Chuck picture Chuck · Jan 27, 2010

For Ruby 1.8.7 or above:

a.each_with_index.max[1]

It does one iteration. Not entirely the most semantic thing ever, but if you find yourself doing this a lot, I would wrap it in an index_of_max method anyway.