配列(リスト)から特定の条件を満たす要素を探してそのインデックスを取得するには (find_index / index / indexWhere, rindex)

Scala

Signature:

要素が見つからなかった場合は -1 を返す。(Option[Int]じゃないところがちょっと気持ち悪い)

複数ある場合は最初の要素のインデックスを返す。

p関数がtrueを返す要素を取得する。

Ruby / JRuby

Array#index または Array#find_index にブロックを渡すと、要素を引数として要素ごとにブロックが評価されて、 trueを返した最初のインデックスを返す。

Array#rindex は逆に最後から順番に探す。

見つからなかった場合は nil を返す。

arr = [10, 20, 30, 40, 50]

p arr.index { |v| v % 7 == 2 }
# => 2

Array#index, Array#find_index | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/find_index.html

Array#rindex | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/method/Array/i/rindex.html

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク