Pergunta

Existe uma maneira boa em ruby para remover arquivos duplicados em enumerável listas (por exemplo,rejeitar, etc.)

Foi útil?

Solução

Para a matriz você pode usar uniq() método

a = [ "a", "a", "b", "b", "c" ]
a.uniq   #=> ["a", "b", "c"]

portanto, se você apenas

(1..10).to_a.uniq

ou

%w{ant bat cat ant}.to_a.uniq

porque mesmo assim quase todos os métodos que implementam irá retornar como uma classe Array.

Outras dicas

Bem, a estratégia seria convertê-los para matrizes e remover os duplicados de matrizes.Pelo caminho listas são arrays em ruby, em qualquer caso, então eu não tenho certeza do que você quer dizer com "imensas listas"

Você pode fazer uma conversão para um Conjunto de, se o elemento de ordem não é importante.

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

Eu gosto usando o conjunto de operadores lógicos, se o objeto não tiver um .uniq método.

a = [2,3,3,5,5,5,6] # => [2, 3, 3, 5, 5, 5, 6] 
a | a # => [2, 3, 5, 6]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top