5

ルビーで列挙可能なリストの重複を削除する良い方法はありますか (つまり、拒否など)。

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

戦略は、それらを配列に変換し、配列から重複を削除することです。ちなみに、リストはいずれにせよルビーの配列なので、「列挙可能なリスト」とはどういう意味かわかりません。

于 2009-09-06T14:00:50.130 に答える
2

要素の順序が重要でない場合は、セットへの変換を行うことができます。

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

于 2009-09-06T14:15:59.333 に答える
1

オブジェクトに .uniq メソッドがない場合は、set 論理演算子を使用するのが好きです。

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 に答える