I have an array of hashes where I need to find and save matches based on one matching value between hashes.
a = [{:id => 1, :name => "Jim", :email => " jim@jim.jim "}, {:id => 2, :name => "Paul", :email => " paul@paul.paul "}, {:id => 3, :name => "Tom", :email => " tom@tom.tom "}, {:id => 1, :name => "Jim", :email => " jim@jim.jim "}, {:id => 5, :name => "Tom", :email => " tom@tom.tom "}, {:id => 6, :name => "Jim", :email => " jim@jim.jim "}]
Therefore, I would like to return
b = [{:id => 1, :name => "Jim", :email => " jim@jim.jim "}, {:id => 3, :name => "Tom", :email => " tom@tom.tom "}, {:id => 5, :name => "Tom", :email => " tom@tom.tom "}, {:id => 6, :name => "Jim", :email => " jim@jim.jim "}]
Notes. I can sort the data (csv) by :name after the fact, so they should not be well grouped, just accurate. Also, not necessarily two identical, it can be 3 or 10 or more.
In addition, the data is about 22,000 rows.