Files
2026-10-16 16:11:23 +02:00

50 lines
1.0 KiB
Ruby

# Défi : regrouper des repas
#
# Écris la méthode `meal_totals(meals)`.
#
# Chaque repas contient un aliment et une quantité :
#
# { food: "dubia", quantity: 2 }
#
# La méthode doit retourner un hash contenant la quantité totale
# consommée pour chaque aliment.
#
# Exemple :
#
# meals = [
# { food: "dubia", quantity: 2 },
# { food: "mealworm", quantity: 3 },
# { food: "dubia", quantity: 1 }
# ]
#
# meal_totals(meals)
# => {
# "dubia" => 3,
# "mealworm" => 3
# }
#
# Contraintes :
# - ne modifie pas le tableau d'origine ;
# - le résultat doit fonctionner quel que soit le nom des aliments ;
# - évite d'écrire une condition spécifique pour chaque aliment.
meals = [
{ food: "dubia", quantity: 2 },
{ food: "mealworm", quantity: 3 },
{ food: "dubia", quantity: 1 },
{ food: "red_runner", quantity: 2 }
]
def meal_totals(meals)
total = {}
meals.each do |meal|
unless total.key?(meal[:food])
total[meal[:food]] = 0
end
total[meal[:food]] += meal[:quantity]
end
total
end
puts meal_totals(meals)