I want to get union / intersection / difference from two hash arrays, for example:
array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}] array2 = [{:name =>'Guy1', :age => 45},{:name =>'Guy3', :age => 45}]
...
p array1 - array2 => [{:name=>"Guy2", :age=>45}] p array2 - array1 => [{:name=>"Guy3", :age=>45}] p array1 | array2 => [{:name=>"Guy1", :age=>45}, {:name=>"Guy2", :age=>45}, {:name=>"Guy3", :age=>45}]
however, when I want to compare only based on names and ignore ages without removing them from hashes, for example:
array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}] array2 = [{:name =>'Guy1', :age => 46},{:name =>'Guy3', :age => 45}]
In this case, I do not get the results that I need b / c, the ages are different.
array1 - array2 => [{:name=>"Guy1", :age=>45}, {:name=>"Guy2", :age=>45}] array2 - array1 => [{:name=>"Guy1", :age=>46}, {:name=>"Guy3", :age=>45}] array1 | array2 => [{:name=>"Guy1", :age=>45}, {:name=>"Guy2", :age=>45}, {:name=>"Guy1", :age=>46}, {:name=>"Guy3", :age=>45}]
Is there a way to get union / intersection / difference and ignore the age key?
edit: for a better example:
array1 = [{:name =>'Guy1', :age => 45},{:name =>'Guy2', :age => 45}] array2 = [{:name =>'Guy1'},{:name =>'Guy3'}] p array1 - array2 p array2 - array1 p array1 | array2 p array1 & array2
Thanks in advance for your help!