如何从ruby数组中获取重复元素?

Pra*_*tha 3 ruby ruby-on-rails

假设我有一个数组[1,2,3,1,5,2].这里1和2是重复的元素.我想得到一个新的数组[1,2].

我如何在红宝石中做到这一点?

Pav*_*ing 12

arr = [1,2,3,1,5,2]
arr.group_by {|e| e}.map { |e| e[0] if e[1][1]}.compact
Run Code Online (Sandbox Code Playgroud)

相当丑陋......但没有n + 1问题的工作.

  • 另外,也许更清楚`arr.group_by {| v | v} .select {| k,v | v.count> 1} .keys` (3认同)