📝
Ruby で重複している要素の位置を取得したかった
Ruby の配列から重複している要素の位置を取得したかったのでやってみました。
ary = ["homu", "mami", "mado", "honu", "homu", "mami", "homu"]
result = ary.each_with_index # [要素, index] の配列に変換する
.group_by { |it, i| it } # 要素単位でグループ化する
# グループが2つ以上の要素を抽出して index の値に変換する
.filter_map { |it, result| result.map { _2 } if result.count >= 2 }
pp result
# => [[0, 4, 6], [1, 5]]
もう少しいい感じにかけないかな〜。
Discussion