5

ruby 中是否有一种好方法可以删除可枚举列表中的重复项(即拒绝等)?

4

4 回答 4

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 类返回。

于 2009-09-06T15:25:26.727 回答
2

那么策略是将它们转换为数组并从数组中删除重复项。顺便说一下,列表在任何情况下都是 ruby​​ 中的数组,所以我不确定您所说的“可枚举列表”是什么意思

于 2009-09-06T14:00:50.130 回答
2

如果元素顺序不重要,您可以转换为 Set。

http://www.ruby-doc.org/core/classes/Set.html

于 2009-09-06T14:15:59.333 回答
1

如果对象没有 .uniq 方法,我喜欢使用集合逻辑运算符。

a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6] 
a | a # => [2, 3, 5, 6]
于 2012-04-20T04:37:37.197 回答