user2621221
user2621221

Reputation: 19

working with nested arrays hashes ruby

I'm having a hard time with nested hashes

 Restaurant = {:name=>"McDonalds",
 :location=>"NYC",
 :chefs=>
  [{:name=>"Sunny", :food=>"fries"},
   {:name=>"Brooklyn", :food=>"burgers"},
   {:name=>"Mac", :food=>"burgers"}],
 :waiters=>
  [{:name=>"Jess", :role=>"senior manager"},
   {:name=>"Sam", :role=>"manager"},
   {:name=>"Jack", :role=>"server"},
   {:name=>"Mary", :role=>"server"}]}

how would I delete the waiter hash with Jack as a value for example? or return all waiter's names with the role of server?

Upvotes: 0

Views: 1683

Answers (1)

sawa
sawa

Reputation: 168091

Restaurant[:waiters].reject!{|h| h[:name] == "Jack"}
Restaurant # => {
  :name=>"McDonalds", :location=>"NYC",
  :chefs=>[{:name=>"Sunny", :food=>"fries"}, {:name=>"Brooklyn", :food=>"burgers"}, {:name=>"Mac", :food=>"burgers"}],
  :waiters=>[{:name=>"Jess", :role=>"senior manager"}, {:name=>"Sam", :role=>"manager"}, {:name=>"Mary", :role=>"server"}]
}

Restaurant[:waiters].select{|h| h[:role] == "server"}
# => [{:name=>"Mary", :role=>"server"}]

Upvotes: 2

Related Questions