如何获得红宝石数组中重复元素的索引

二氧化碳
 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章