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

如何将给定的JavaScript数组映射为对象?求助对象转换实现方案

数组转对象数组的实现方案

首先需要纠正一个语法问题:你给出的预期输出中,Data应该是数组(而非对象),因为JavaScript对象无法直接将多个独立对象作为自身的顶层内容,正确的预期结构应为:

Data: [
  {Name: 'A', Id: 1},
  {Name: 'B', Id: 2},
  {Name: 'C', Id: 3},
  {Name: 'D', Id: 4}
]

核心实现代码

利用数组的map方法即可完成转换,因为Name和Id数组长度一致,我们可以通过索引关联对应项:

// 原始数据
const originalData = {
  Name: ['A', 'B', 'C', 'D'],
  Id: [1, 2, 3, 4]
};

// 执行转换
const transformedData = originalData.Name.map((name, index) => ({
  Name: name,
  Id: originalData.Id[index]
}));

console.log(transformedData);

代码解释

  • originalData.Name.map(...):遍历Name数组的每一项,同时获取当前项的索引index
  • 每次遍历返回一个新对象,将当前name赋值给Name属性,再通过index从Id数组中取出对应位置的值赋值给Id属性
  • 最终transformedData就是你需要的对象数组

兼容长度不一致的情况

如果不确定Name和Id数组长度是否完全匹配,可以通过循环做边界处理,避免索引越界:

const transformedData = [];
// 取两个数组中较短的长度作为遍历上限
const maxLength = Math.min(originalData.Name.length, originalData.Id.length);

for (let i = 0; i < maxLength; i++) {
  transformedData.push({
    Name: originalData.Name[i],
    Id: originalData.Id[i]
  });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:33:12