Given an array, how can I find all indices of elements those match a given condition?
For example, if I 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?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…