Учитывая массив, как я могу найти все индексы элементов, которые соответствуют заданному условию?
Например, если у меня есть:
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]
Есть ли лучший способ достичь этого?