views:

24

answers:

1

I have two arrays of structs.

array_of_structs1
array_of_structs2

The struct class looks like this, for contextual info:

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

I want to remove the duplicate users from array_of_structs1.

Any assistance would be greatly appreciated!

A: 

I'm not sure if I understand. If you want to remove duplicate structs that have the same user in array_of_struct1 use:

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

If you wan't to remove entries from array1 that are also in array 2 use

array_of_structs1 = array_of_structs1 - array_of_struct2
Jakub Hampl
The latter worked. Great trick!
keruilin