Menu
Coddy logo textTech

Resumen del 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 elementos (qty * price, sumado), impreso como un entero.
  2. La categoría con el mayor número de elementos, con el formato Top category: <name> (<count>). En caso de empate, se desempata alfabéticamente por nombre de categoría.
  3. Los nombres de los elementos sin existencias (qty == 0), ordenados alfabéticamente y unidos con , . Si no hay ninguno, imprime (none).
  4. Los nombres de los 3 elementos más caros según el precio por unidad, del más caro al más barato y unidos con , . En caso de empate, se desempata alfabéticamente por nombre.

Para el inventario predeterminado, 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

Practica por tu cuenta: Compilador de Ruby online