Collections
Nested Collections
Arrays and hashes can be nested to model records with related details.
Nested Collections
nested_collections.rb
students = [
{ name: "Ada", scores: [8, 9] },
{ name: "Grace", scores: [10, 10] },
{ name: "Linus", scores: [7, 8] }
]
student_name =
student = students.find do |entry|
entry[:name] == student_name
end
if student
total = student[:scores].sum
average = total / student[:scores].length
puts "student=#{student_name}"
puts "total=#{total}"
puts "average=#{average}"
else
puts "student=#{student_name}"
puts "status=missing"
end
students = [
{ name: "Ada", scores: [8, 9] },
{ name: "Grace", scores: [10, 10] },
{ name: "Linus", scores: [7, 8] }
]
student_name =
student = students.find do |entry|
entry[:name] == student_name
end
if student
total = student[:scores].sum
average = total / student[:scores].length
puts "student=#{student_name}"
puts "total=#{total}"
puts "average=#{average}"
else
puts "student=#{student_name}"
puts "status=missing"
end
students = [
{ name: "Ada", scores: [8, 9] },
{ name: "Grace", scores: [10, 10] },
{ name: "Linus", scores: [7, 8] }
]
student_name =
student = students.find do |entry|
entry[:name] == student_name
end
if student
total = student[:scores].sum
average = total / student[:scores].length
puts "student=#{student_name}"
puts "total=#{total}"
puts "average=#{average}"
else
puts "student=#{student_name}"
puts "status=missing"
end
nested collection
A nested collection stores one collection inside another, such as hashes inside an array.