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

Entraînez-vous par vous-même : Compilateur Ruby en ligne