ぼくらの研究

ぼくらのための研究をしていきます。

[Rails]配列で3件以上値が重複しているものだけ抽出する

   

2件以上重複とかは調べてすぐ見つけられたんですど、3件以上重複する値を抽出するものが見つけられなかったので、見つけたものを自分なりにカスタマイズにして作ってみました。


array = [1, 2, 3, 4, 5, 1, 3, 3, 5, 2, 2]
array.inject(Hash.new(0)){|h, key| h[key] += 1; h}.map {|k,v| k if v >= 3}.compact
#=> [2, 3]

お察しの通りv >= 3の整数部を変えることで何件以上にも指定できるので、
「配列でN件以上値が重複しているものだけ抽出する」とも言えます。

以上、ご参考になれば幸いです。