ただ単に重複した要素を取り除く場合は、uniq
を使えばOKです。
a = [1,2,3,5,1,2,4] a.uniq => [1, 2, 3, 4, 5]
今回は、重複した要素そのものを取り出したい、つまり、先ほどの配列a
から[1,2]
を抽出します。
a = [1,2,3,5,1,2,4] a.uniq.map { | e | [e, a.count(e)] }.select { | _, c | c > 1 }.map{ |e, c| e } => [1, 2]
ちなみにrubyのバージョンは以下のとおりです。
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin14.0]