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

TypeScript中如何将含数组值的对象转为单个键值对集合

TypeScript 对象转指定格式方案

可以通过Object.entries()配合flatMap和map实现需求,以下是具体代码方案:

1. 定义原数据

const fruits = {
  Apple: ['Doctor', 'Keep', 'away'],
  Orange: ['sour', 'sweet'],
  Guava: ['sweet', 'seeds'],
  Kiwi: ['Sour', 'VitaminC']
};

2. 转换逻辑

// 生成目标格式的数组
const formattedArray = Object.entries(fruits).flatMap(([fruitName, values]) => {
  return values.map(value => `[${fruitName}:${value}]`);
});

// 若需要拼接为连续字符串形式
const formattedString = formattedArray.join(',');

3. 代码解释

  • Object.entries(fruits):将原对象转换为键值对数组,结构为[['Apple', ['Doctor', ...]], ['Orange', ['sour', ...]], ...]
  • flatMap:遍历每个键值对,同时将内层map生成的数组扁平化,避免得到嵌套数组
  • 内层map:将每个水果的属性值转换为[水果名:属性值]的字符串格式

4. 输出结果

  • formattedArray的内容:
["[Apple:Doctor]", "[Apple:Keep]", "[Apple:away]", "[Orange:sour]", "[Orange:sweet]", "[Guava:sweet]", "[Guava:seeds]", "[Kiwi:Sour]", "[Kiwi:VitaminC]"]
  • formattedString的内容:
[Apple:Doctor],[Apple:Keep],[Apple:away],[Orange:sour],[Orange:sweet],[Guava:sweet],[Guava:seeds],[Kiwi:Sour],[Kiwi:VitaminC]

补充:使用Map实现的方案

如果一定要用Map,也可以先将对象转为Map再处理:

const fruitMap = new Map(Object.entries(fruits));
const formattedFromMap = Array.from(fruitMap).flatMap(([fruitName, values]) => {
  return values.map(value => `[${fruitName}:${value}]`);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:01:07