Search code examples
rubyarraysindexingmax

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


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.


Solution

  • 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.