在ruby中有一个好方法可以删除可枚举列表中的重复项(即拒绝等)
答案 0 :(得分:10)
对于数组,您可以使用uniq()方法
a = [ "a", "a", "b", "b", "c" ]
a.uniq #=> ["a", "b", "c"]
所以,如果你只是
(1..10).to_a.uniq
或
%w{ant bat cat ant}.to_a.uniq
因为无论如何,您实现的几乎所有方法都将作为Array类返回。
答案 1 :(得分:2)
好的策略是将它们转换为数组并从数组中删除重复项。顺便说一下,无论如何,列表都是ruby中的数组,因此我不确定“enumerable lists”是什么意思
答案 2 :(得分:2)
如果元素顺序不重要,您可以转换为Set。
答案 3 :(得分:1)
如果对象没有.uniq方法,我喜欢使用set logic运算符。
a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6]
a | a # => [2, 3, 5, 6]