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

求助:如何使用.map()将指定JSON转换为目标键值对格式?

解决方案:对象结构转换

没问题,这其实是个挺常见的对象结构转换需求,我来给你拆解下怎么实现~

首先,你的原始数据是一个只包含单个对象的数组,直接对这个数组用map()的话,只会遍历到那一个大对象,没法直接拿到里面的键值对——这应该就是你之前尝试失败的原因。我们需要先把对象拆成键值对数组,再进行转换。

核心实现代码

// 你的原始数据
const originalData = [ { "AF28110": 33456.75, "AF27989": 13297.26 } ];

// 转换逻辑
const transformedData = Object.entries(originalData[0]).map(([name, price]) => ({
  name,
  price
}));

console.log(transformedData);
// 输出结果正好是你要的:
// [ { "name": "AF28110", "price": 33456.75}, { "name": "AF27989", "price": 13297.26} ]

步骤解释

  1. 提取目标对象:originalData[0]拿到数组里的那个对象;
  2. 转成键值对数组:Object.entries()方法会把对象转换成[键, 值]格式的二维数组,比如这里会得到[["AF28110", 33456.75], ["AF27989", 13297.26]];
  3. map遍历转换:用map()遍历每个键值对,通过解构赋值([name, price])直接取出键和值,返回你需要的{name, price}结构。

扩展:如果原始数组有多个对象

要是你的原始数据里可能包含多个这样的对象(比如[{...}, {...}]),可以用flatMap()来一次性处理,避免得到嵌套数组:

const originalData = [
  { "AF28110": 33456.75, "AF27989": 13297.26 },
  { "AF12345": 999.99 }
];

const transformedData = originalData.flatMap(item => 
  Object.entries(item).map(([name, price]) => ({ name, price }))
);

console.log(transformedData);
// 输出:[ {name: "AF28110", price: 33456.75}, {name: "AF27989", price: 13297.26}, {name: "AF12345", price: 999.99} ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:28:56