2015-07-20 59 views
0

我將使用一個具體示例來表達我想要做的事情,因爲我發現這是使我的觀點清晰的最簡單的方法。如何使用.find更改嵌套數組中的值

我想知道如何使用.find方法查找名爲「Frank」的學生,並將他的成績轉換爲「F」。

這裏是嵌套的數組是什麼樣子例:

School data{ 
    :name => "School Name", 
    :location => "NYC", 
    :students => [ 
    {:name => "Steven", :grade => "B"}, 
    {:name=>"Bob", :grade => "F"}, 
    {:name => "Frank", :grade => "A"}, 
    {:name => "Silvia", :grade => "C"} 
    ] 
} 

非常感謝你。

+0

哦,我差點爲此而墮落。我無法良心地幫助你改變你在學校的成績。 ;-) Bueller? Bueller? Bueller? – Beartech

回答

1

試試這個:

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

考慮使用類代替嵌套Hash ES和Array秒。