如何按指定格式在TypeScript中打印多级对象shop_items
实现指定格式打印TypeScript变量shop_items的方案
完整实现代码
先补全必要的类型定义,再编写打印逻辑:
type InventoryItem = Record<string, string>; type Inventory = { Toys: { Balls: InventoryItem; }; Books: Record<string, InventoryItem>; }; export const shop_items: Inventory = { Toys: { Balls: { BallId: '001uy', BallName: 'Soccerball', SignedBy: 'David_Beckham', }, }, Books:{ Novel: { BookId: '001fd', BookName: 'Beauty and the beast', }, Puzzle: { BookId: '002sz', BookName: 'Sherlock Holmes', }, Sci-fi: { BookId: '003tr', BookName: 'Dr.Gadget', }, } }; function printShopItems(items: Inventory) { // 处理Toys模块,直接打印键值对 const toysBalls = items.Toys.Balls; for (const [key, value] of Object.entries(toysBalls)) { console.log(`${key} : ${value}`); } console.log(''); // 空行分隔两部分内容 // 处理Books模块,按路径格式打印BookId for (const [category, bookInfo] of Object.entries(items.Books)) { console.log(`/Books/${category}/BookId : ${bookInfo.BookId}`); } } // 执行打印 printShopItems(shop_items);
逻辑说明
- Toys部分处理:直接遍历
Toys.Balls的所有键值对,按键 : 值格式输出 - Books部分处理:遍历
Books下的每个分类,拼接路径字符串/Books/[分类名]/BookId,对应输出该分类的BookId值 - 用空行分隔两部分输出内容,匹配期望格式
运行输出
执行代码后,控制台将输出:
BallId : 001uy BallName : Soccerball SignedBy : David_Beckham /Books/Novel/BookId : 001fd /Books/Puzzle/BookId : 002sz /Books/Sci-fi/BookId : 003tr
内容的提问来源于stack exchange,提问作者ShanWave007
相关产品推荐
相关产品推荐

