给定一个数组,如何找到与给定条件匹配的元素的所有索引?
例如,如果我有:
arr = ['x', 'o', 'x', '.', '.', 'o', 'x']
要查找 item 所在的所有索引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]
有没有更好的方法来实现这一目标?