Menu
CoddyTech

库存快照

本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 55 课,共 56 课。

一份库存报告,用来练习哈希、Enumerable 链式调用、group_by,以及一些格式处理。

challenge icon

挑战

中等

给定数组 inventory。每个项目都是一个哈希,包含 :name、:category、:qty 和 :price。

打印 4 行:

  1. 所有项目的库存总价值(将 qty * price 的结果相加),以整数形式打印。
  2. 项目数量最多的类别,格式为 Top category: <name> (<count>)。如果数量相同,按类别名称的字母顺序排列。
  3. 缺货项目的名称(qty == 0),按字母顺序排列,并用 , 连接。如果没有缺货项目,则打印 (none)。
  4. 单价最高的前 3 个项目的名称,按价格从高到低排列,并用 , 连接。如果价格相同,按名称的字母顺序排列。

默认库存的输出为:

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

亲手试试

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:输出总价值、价值最高的类别、缺货商品名称,以及按价格排序的前 3 件商品
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Ruby 在线编译器