Rubyリファレンス: Home

find_index (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Array > find_index

enum.find_index(obj)

find_indexメソッドは、要素の中から引数objと同じものを探し、その位置を整数で返します(1番目が0、2番目が1、...)。要素が見つからないときは、nilを返します。

次の例は、文字列の中で特定の行の位置を調べます。

str = <<END
ruby
object-oriented
scripting
language
END
p str.lines.find_index("scripting\n")
p str.lines.find_index("\n")
2
nil
enum.find_index {|item| block }

find_indexメソッドにブロックを渡すと、ブロック引数itemに要素を入れながらブロックを繰り返し実行します。ブロックの戻り値が真であれば、繰り返しを中断してその位置を返します。

次の例は、1000以上で7で割り切れる数を調べます。

puts (1000..1010).find_index {|n| n % 7 == 0 } + 1000
1001

メモ

find_indexメソッドが返す「位置」とは、実際には要素が見つかるまで繰り返した回数です。Ruby 1.8のハッシュのように順序を持たない集合でも、find_indexメソッドを利用できます。

関連項目