我有两个清单
a = [1, 2, 3, 4, 1, 2]
b = a.uniq # b = [1, 2, 3, 4]
c = a - b
Run Code Online (Sandbox Code Playgroud)
结果得到了 c = []
我期待结果 c = [1, 2]
我怎么能得到这个?
这是根据Array文档的预期结果.
如果你想获得在数组中有多次出现的值,你可以这样:
a.uniq.keep_if {|v| a.count(v) > 1}
Run Code Online (Sandbox Code Playgroud)
如果使用Ruby 1.8,keep_if则不可用,因此您需要使用以下内容:
a.uniq.delete_if {|v| a.count(v) == 1}
Run Code Online (Sandbox Code Playgroud)
(两种方法保持a完整)