Ruby删除可枚举列表中的重复项

Dan*_*iel 5 ruby enumerable

在ruby中有一个很好的方法来删除可枚举列表中的重复项(即拒绝等)

Jir*_*ong 10

对于数组,您可以使用uniq()方法

a = [ "a", "a", "b", "b", "c" ]
a.uniq   #=> ["a", "b", "c"]
Run Code Online (Sandbox Code Playgroud)

所以,如果你只是

(1..10).to_a.uniq
Run Code Online (Sandbox Code Playgroud)

要么

%w{ant bat cat ant}.to_a.uniq
Run Code Online (Sandbox Code Playgroud)

因为无论如何,你实现的几乎所有方法都将作为Array类返回.

  • 技术上可以使一个范围(Fixnums以外的东西)产生重复的元素 - 它需要的是对于某些对象x,x.succ == x.例如,一个代表斐波那契数字的类将具有数字1的这个属性.我不知道为什么你会这样做 - 很可能它是疯狂的标志 - 但它可能*. (2认同)