1. ホーム
  2. ruby

与えられた条件に合致する要素のインデックスを検索する

2023-10-05 22:33:37

質問

配列が与えられたとき、与えられた条件に一致する要素のすべてのインデックスを見つけるにはどうしたらよいでしょうか。

例えば、私が持っている場合。

arr = ['x', 'o', 'x', '.', '.', 'o', 'x']

アイテムがあるすべてのインデックスを検索するには x , とすることができる。

arr.each_with_index.map { |a, i| a == 'x' ? i : nil }.compact   # => [0, 2, 6]

または

(0..arr.size-1).select { |i| arr[i] == 'x' }   # => [0, 2, 6]

もっと素敵な実現方法はないでしょうか?

どのように解決するのですか?

Ruby 1.9です。

arr = ['x', 'o', 'x', '.', '.', 'o', 'x']
p arr.each_index.select{|i| arr[i] == 'x'} # =>[0, 2, 6]

コード