2010-05-18 5 views
0

У меня есть два массива структур.Сравнение массива структур и удаление дубликата

array_of_structs1 
array_of_structs2 

структура класса выглядит следующим образом, для контекстной информации:

class Leader < Struct.new(:rank, :user); end 

Я хочу, чтобы удалить дубликаты пользователей из array_of_structs1.

Любая помощь была бы принята с благодарностью!

ответ

0

Я не уверен, насколько я понимаю. Если вы хотите, чтобы удалить дубликаты структур, которые имеют один и тот же пользователь в использовании array_of_struct1:

array_of_structs1 = Hash[*array_of_structs1.map {|obj| [obj.user, obj]}.flatten].values 

Если вы wan't для удаления записей из array1, также в массиве 2 использования

array_of_structs1 = array_of_structs1 - array_of_struct2 
+0

Последний работал. Отличный трюк! – keruilin