如何使用.find更改嵌套数组中值的值

时间:2015-07-20 22:29:40

标签: arrays ruby nested

我将使用一个具体的例子来做我想做的事情,因为我发现这是让我的观点清楚的最简单方法。

我想知道如何使用.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"}
  ]
}

非常感谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

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

考虑使用类而不是嵌套的Hash es和Array s。