Skip to content

End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

instance method

Array#rindex

array.rindex(object) → integer or nil
array.rindex {|element| ... } → integer or nil
array.rindex → new_enumerator

Returns the index of the last element for which object == element.

When argument object is given but no block, returns the index of the last such element found:

Example
a = [:foo, 'bar', 2, 'bar']
a.rindex('bar') # => 3

Returns nil if no such object found.

When a block is given but no argument, calls the block with each successive element; returns the index of the last element for which the block returns a truthy value:

Example
a = [:foo, 'bar', 2, 'bar']
a.rindex {|element| element == 'bar' } # => 3

Returns nil if the block never returns a truthy value.

When neither an argument nor a block is given, returns a new Enumerator:

Example
a = [:foo, 'bar', 2, 'bar']
e = a.rindex
e # => #<Enumerator: [:foo, "bar", 2, "bar"]:rindex>
e.each {|element| element == 'bar' } # => 3

Related: index.

See also #reverse_each #rotate #reverse! #rotate! also in 4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0