method
find_index
v1_9_1_378 -
Show latest stable
- Class:
Array
find_index(p1 = v1)public
Returns the index of the first object in self such that is
to obj. If a block is given instead of an
argument, returns first object for which block is true. Returns nil if no match is found.
a = [ "a", "b", "c" ] a.index("b") #=> 1 a.index("z") #=> nil a.index{|x|x=="b"} #=> 1
This is an alias of #find_index.
1Note
Using find_index to return first match. Profit!
This example shows how to use find_index to return a result as soon as the first occurrence of what you are looking for is found.
==== Code example
class Widget < Struct.new(:name, :profit); end
class WidgetManager
def initialize(*widgets)
@widgets = widgets
end
def is_any_widget_profitable?
@widgets.find_index { |w| w.profit > 0 } # <== usage!
end
end
wm = WidgetManager.new(Widget.new('a', -100), Widget.new('b', 200), Widget.new('c', 300))
wm.is_any_widget_profitable? # => 1
(wm.is_any_widget_profitable?) ? 'some profit' : 'all loss' # => "some profit"
wm = WidgetManager.new(Widget.new('a', -100), Widget.new('b', -200), Widget.new('c', -300))
wm.is_any_widget_profitable? # => nil
(wm.is_any_widget_profitable?) ? 'some profit' : 'all loss' # => "all loss"