ruby - How can I use .find to change the value of a value inside a nested array -


i going using concrete example want do, find easiest way make point clear.

i know how use .find method student named "frank" , turn grade "f", example.

here nested array in example:

school data{    :name => "school name",   :location => "nyc",   :students => [      {:name => "steven", :grade => "b"},     {:name=>"bob", :grade => "f"},     {:name => "frank", :grade => "a"},     {:name => "silvia", :grade => "c"}   ] } 

thank much.

try this:

frank = data[:students].find { |s| s[:name] == 'frank' } frank[:grade] = 'f' 

consider using classes instead of nested hashes , arrays.


Comments