J'ai une classe Ruby
class MyClass
attr_writer :item1, :item2
end
my_array = get_array_of_my_class() #my_array is an array of MyClass
unique_array_of_item1 = []
Je veux pousser MyClass#item1
à unique_array_of_item1
, mais seulement si unique_array_of_item1
ne contient pas item1
encore. Il existe une solution simple que je connais: il suffit de parcourir my_array
et de vérifier si unique_array_of_item1
contient déjà le courant item1
ou non.
Existe-t-il une solution plus efficace?
Set#each
etSet#to_a
) sont déléguées à@hash
. Et à partir de Ruby 1.9, des hachages sont commandés. "Les hachages énumèrent leurs valeurs dans l'ordre d'insertion des clés correspondantes." ruby-doc.org/core-1.9.1/Hash.html