こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Rubyで配列から指定された値と一致する最初の要素のインデックスを取得するfind_indexメソッドについて
- find_indexメソッドとは
- find_indexメソッドを使ったサンプルプログラム
と、この記事で丁寧に解説していきます。
目次
前提条件
この記事で使っているRubyのバージョンは、2.6.6です。
Rubyのインストールは、下の記事をご参考ください。
find_indexメソッドとは
find_indexメソッドとは、配列から指定された値と一致する最初の要素のインデックスを取得するメソッドです。
find_indexメソッドは使い方が
- パターン1:引数を指定する場合
- パターン2:ブロックを指定する場合
の合計2パターンあります。
それぞれ解説します。
パターン1:引数を指定する場合
引数を指定する場合は、下記のように使います。
上記の例だと、resultには1が返されます。
もし一致する値が存在しなかった場合、nilを返します。
パターン2:ブロックを指定する場合
ブロックを指定する場合は、下記のように使います。
上記の例だと、resultには1が返されます。
もし一致する値が存在しなかった場合、nilを返します。
では、次の章で実際に使ってみます。
find_indexメソッドを解説するプログラムの概要
find_indexメソッドを解説するプログラムでは、
- パターン1:引数を指定する場合
- パターン2:ブロックを指定する場合
それぞれを確認します。
- 条件に一致する要素が存在する場合
- 条件に一致する要素が存在しない場合
の2パターンで各パターンのfind_indexメソッドを使い、結果を表示させます。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 確認する配列 numarray = [9, 8, 12, -6, 5, 8, 10] puts "#{numarray}" # 引数で条件指定 puts "■パターン1:引数を指定する場合" puts "要素8のインデックス:#{numarray.find_index(8)}" puts "要素1のインデックス:#{numarray.find_index(3)}" # ブロックで条件指定 puts "■パターン2:ブロックを指定する場合" numresult = numarray.find_index{ |num| num > 9 } puts "9より大きい最初の要素のインデックス:#{numresult}" numnoresult = numarray.find_index{ |num| num > 100 } puts "100より大きい最初の要素のインデックス:#{numnoresult}" |
実行結果
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
[9, 8, 12, -6, 5, 8, 10]
■パターン1:引数を指定する場合
要素8のインデックス:1
要素1のインデックス:
■パターン2:ブロックを指定する場合
9より大きい最初の要素のインデックス:2
100より大きい最初の要素のインデックス:
指定した条件の通り、最初の要素のインデックスが取得できていることが確認できました!
まとめ:find_indexメソッドを使ってみよう!
以上がfind_indexメソッドについての解説でした!
find_indexメソッドは、配列から簡単に条件に一致する最初の要素のインデックスを抽出できる便利なメソッドなので、ぜひ使ってみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント