Menu
Coddy logo textTech

Instantané d'inventaire

Fait partie de la section Logique et Flux du Journey Ruby de Coddy — leçon 55 sur 56.

Un rapport d'inventaire qui met en pratique les hashes, les chaînes Enumerable, group_by, et une touche de mise en forme.

challenge icon

Défi

Moyen

Le tableau inventory est fourni. Chaque élément est un hash avec :name, :category, :qty, et :price.

Affichez quatre lignes :

  1. La valeur totale de l'inventaire pour tous les articles (qty * price, additionnés), affichée sous forme d'entier.
  2. La catégorie ayant le plus grand nombre d'articles, au format Top category: <name> (<count>). En cas d'égalité, l'ordre alphabétique du nom de la catégorie prévaut.
  3. Les noms des articles out of stock (qty == 0), triés par ordre alphabétique, joints par , . Si aucun, affichez (none).
  4. Les noms des 3 articles les plus chers par prix unitaire, du plus cher au moins cher, joints par , . En cas d'égalité, l'ordre alphabétique du nom prévaut.

Pour l'inventaire par défaut, la sortie est :

232
Top category: food (3)
milk
chair, lamp, milk

Essayez vous-même

inventory = [
  { name: "apple",  category: "food",        qty: 10, price: 2 },
  { name: "bread",  category: "food",        qty: 4,  price: 3 },
  { name: "milk",   category: "food",        qty: 0,  price: 4 },
  { name: "chair",  category: "furniture",   qty: 2,  price: 35 },
  { name: "lamp",   category: "furniture",   qty: 5,  price: 20 },
  { name: "pencil", category: "stationery",  qty: 30, price: 1 }
]

# TODO: afficher la valeur totale, la catégorie principale, les noms en rupture de stock, le top 3 par prix
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux