Ruby 配列の中で最大値のインデックス番号を求める

  • 作成日 2021.06.06
  • 更新日 2022.08.09
  • Ruby
Ruby 配列の中で最大値のインデックス番号を求める

Rubyで、配列の中で最大値のインデックス番号を求めるサンプルコードを記述してます。rubyのバージョンは2.7.2を使用してます。

環境

  • OS windows10 pro 64bit
  • ruby 2.7.2p137

最大値のインデックス番号を求める

「index」と「max」を使用すれば、配列の最大値のインデックス番号の初めに見つかった番号は求めることは可能です。

arr = [5, 4, 5, 4, 1]

p arr.index(arr.max)
# 0

arr = [3, 5, 4, 5, 4, 1, 5]

p arr.index(arr.max)
# 1

each_with_index.maxを使用すれば、最後に見つかった、配列のインデックス番号の最大値を求めることができます。

arr = [5, 4, 5, 4, 1]

p arr.each_with_index.max[1]
# 2

arr = [3, 5, 4, 5, 4, 1, 5]

p arr.each_with_index.max[1]
# 6

全て見つけるには、以下のコードで可能です。

arr = [5, 4, 5, 4, 1]

p arr.each_index.select{|i|arr[i]==arr.max}
# [0, 2]

arr = [3, 5, 4, 5, 4, 1, 5]

p arr.each_index.select{|i|arr[i]==arr.max}
# [1, 3, 6]