arr = ["A", "X", "X", "D", "C", "B", "A"}
arr.detect{|e| arr.count(e) > 1}
duplicating_value_index_int_array = arr.index(<all duplicating values>)
嗨,我想从ruby数组中获取所有重复元素的索引。我该如何实现?
duplicates = arr.each_with_index.group_by(&:first).inject({}) do |result, (val, group)|
next result if group.length == 1
result.merge val => group.map {|pair| pair[1]}
end
这将返回一个哈希值,其中键将是重复元素,而值将是一个包含每次出现的索引的数组。对于您的测试输入,结果为:
{"A"=>[0, 6], "X"=>[1, 2]}
如果您只关心索引,则可以duplicates.values.flatten
获取仅包含索引的数组。在这种情况下:[0, 6, 1, 2]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句