arr1 = [100, 200, 100, 300, 100, 400]
arr2 = ["ととろ", "まっくろくろすけ", "ととろ", "めいちゃん", "さつきちゃん", "ととろ"]
な配列があったとする。
指定した値と一致する要素のindexを全て配列で返す
arr1.where_is(100)
=> [0, 2, 4]
arr2.where_is("ととろ")
=> [0, 2, 5]
なメソッドが欲しかったから作った。
class Array
def where_is(value)
self.map.with_index{|item, i| i if item == value}.compact!
end
end
追記
配列の指定した文字列と部分一致する要素のindexを全て配列で返すメソッド - Qiitaコメントで教えていただいた@pocariさんのRuby - find_allのindex版 - Qiitaのほうが柔軟で汎用的なので今後はこちらを使うことにします。
ありがとうございます。