【 Ruby 】 配列の中の重複要素だけを抽出するには
Rubyの配列arrayを重複要素無しの配列にするには
array.uniq
または
array.uniq!
とすればいいだけなのだけど、一方で、「配列の中の重複要素だけを抽出する」というメソッドは、どうやら存在しないみたい。
Rubyは配列同士の差を計算できるので
array - array.uniq
でいけるかもと思ったけど、これだと空集合になってしまって役に立たなかった。
サンプルコードを検索しても、イテレータを回すことで解決できないみたいなので、重複要素だけを抽出するコードを自分でも書いてみた。
array_uniq = array.uniq duplicate_element_array = [] (array_uniq).each do |element| if array.grep(element).size > 1 duplicate_element_array.push(element) end end puts duplicate_element_array
としてやると、 duplicate_element_array
が重複要素だけを抽出した配列となる。