You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按指定格式在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);

逻辑说明

  1. Toys部分处理:直接遍历Toys.Balls的所有键值对,按键 : 值格式输出
  2. Books部分处理:遍历Books下的每个分类,拼接路径字符串/Books/[分类名]/BookId,对应输出该分类的BookId值
  3. 用空行分隔两部分输出内容,匹配期望格式

运行输出

执行代码后,控制台将输出:

BallId : 001uy
BallName : Soccerball
SignedBy : David_Beckham

/Books/Novel/BookId : 001fd
/Books/Puzzle/BookId : 002sz
/Books/Sci-fi/BookId : 003tr

内容的提问来源于stack exchange,提问作者ShanWave007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:47:12