Split an array of hashes in two based on the value of a key
arrays, ruby
Solution
Use the `Enumerable#partition` method:
array.partition { |x| x[:ate] }
# => [[{:name=>"Gad", :ate=>true}, {:name=>"Bad", :ate=>true}],
# [{:name=>"Lad", :ate=>false}, {:name=>"Sad", :ate=>false}]]
Or:
array_1, array_2 = array.partition { |x| x[:ate] }
array_1
# => [{:name=>"Gad", :ate=>true}, {:name=>"Bad", :ate=>true}]
array_2
# => [{:name=>"Lad", :ate=>false}, {:name=>"Sad", :ate=>false}]
Problem
How can split this array of hashes in two based on the value of the `ate` key? ``` array = [ { name: "Gad", ate: true }, { name: "Lad", ate: false }, { name: "Bad", ate: true }, { name: "Sad", ate: false } ] ``` Example output ``` array_1 = [ { name: "Gad", ate: true }, { name: "Bad", ate: true } ] array_2 = [ { name: "Lad", ate: false }, { name: "Sad", ate: false } ] ```