Menu
Coddy logo textTech

Instantánea de inventario

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy — lección 55 de 56.

Un informe de inventario que pone en práctica hashes, cadenas de Enumerable, group_by y un toque de formato.

challenge icon

Desafío

Intermedio

Se proporciona el array inventory. Cada elemento es un hash con :name, :category, :qty, y :price.

Imprime cuatro líneas:

  1. El valor total del inventario de todos los artículos (qty * price, sumados), impreso como un entero.
  2. La categoría con el mayor número de artículos, en el formato Top category: <name> (<count>). Los empates se resuelven alfabéticamente por el nombre de la categoría.
  3. Nombres de los artículos out of stock (qty == 0), ordenados alfabéticamente, unidos por , . Si no hay ninguno, imprime (none).
  4. Nombres de los 3 artículos más caros por precio unitario, del más alto al más bajo, unidos por , . Los empates se resuelven alfabéticamente por nombre.

Para el inventario por defecto, la salida es:

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

Pruébalo tú mismo

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: print total value, top category, out-of-stock names, top 3 by price
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo