📝

Ruby で重複している要素の位置を取得したかった

2024/11/09に公開

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]]

もう少しいい感じにかけないかな〜。

GitHubで編集を提案

Discussion