-
目次(まとめ)
- ◾️ indexメソッドを使って、配列内の指定した要素の位置を取得する
- ◾️ 関連記事
Rubyで設定した配列の中で、指定した要素が何番目にあるのか知るためにはどうやったらいいですか?
Rubyのindexメソッドを使うことで、要素の位置(インデックス)を取得することができます。
今回の記事では、Rubyのindexメソッドを使って、指定した要素の位置を取得する方法を紹介します。
indexメソッドを使って、配列内の指定した要素の位置を取得する
ここでは、以下のような果物名からなる文字列配列を定義したとします。
arr = ["apple", "grape", "orange", "banana", "meron", "banana"]
例えば、この配列の中で "grape" の要素の位置番号(インデックス)を取得したい場合には、以下のように実行します。
p arr.index("grape")
#=> 1
Rubyでは、配列の要素を "0" から数えるので、"grape" は1番目になります。
しかし、このメソッドは、配列の中で最初の要素の位置しか得られないので注意してください。
例えば "banana" を検索してみます。
p arr.index("banana")
#=> 3
"banana" は、配列の中の "3" 番目と "5" 番目にありますが、出力は "3" となっています。
このような場合には、"each_index" メソッドと "select" メソッドを組み合わせて、以下のように実行すれば対応できます。
p arr.each_index.select { |s| arr[s] == "banana" }
#=> [3, 5]
"each_index" メソッドでは、"arr" 配列の要素番号を順番にみて繰り返していくので、"s" には 0, 1, 2, 3, ...., 5 が入ります。
"select" メソッドでは、"arr[s] == "banana"" に対応する要素を選択します。例えば、"arr[0] = "apple"" となります。
関連記事
今回の記事では、Rubyのindexメソッドを使って、配列の中から、任意の要素の位置(インデックス)を取得する方法を紹介しました。