Given an array, how would you find all indices of elements those match a given condition?
For example, say we have:
arr = ['x', 'o', 'x', '.', '.', 'o', 'x']
To find all indices where the item is x
,
I could do:
arr.each_with_index.map { |a, i| a == 'x' ? i : nil }.compact # => [0, 2, 6]
or
(0..arr.size-1).select { |i| arr[i] == 'x' } # => [0, 2, 6]
Is there a nicer way to achieve this?
Ruby 1.9:
arr = ['x', 'o', 'x', '.', '.', 'o', 'x']
p arr.each_index.select{|i| arr[i] == 'x'} # =>[0, 2, 6]
find Index of first Matching Element
a=[100,200,300]
a.index{ |x| x%3==0 }