给定一个数组,如何找到与给定条件匹配的元素的所有索引?
例如,如果我有:
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]
有没有更好的方法来实现这一点?