库存快照
本课属于 Coddy Ruby 学习旅程的“逻辑与流程”单元。第 55 课,共 56 课。
一份库存报告,用来练习哈希、Enumerable 链式调用、group_by,以及一些格式处理。
挑战
中等给定数组 inventory。每个项目都是一个哈希,包含 :name、:category、:qty 和 :price。
打印 4 行:
- 所有项目的库存总价值(将
qty * price的结果相加),以整数形式打印。 - 项目数量最多的类别,格式为
Top category: <name> (<count>)。如果数量相同,按类别名称的字母顺序排列。 - 缺货项目的名称(
qty == 0),按字母顺序排列,并用,连接。如果没有缺货项目,则打印(none)。 - 单价最高的前 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 件商品
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Ruby 在线编译器