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

JavaScript中如何将API数据转换为指定键值对象格式

问题:将数组转换为指定格式的对象

我正在本地重新处理API数据,在JavaScript里碰到了问题。我需要遍历表格里的每个名称,把下面这种格式的数组:

[{
    "Name": "USERNAME",
    "Status": 1234,
    "information": "Has something here"
  },
  ...
]

转换成对象结构(注:原需求里的目标结构是对象,数组不支持这种键值对形式):

{
  "USERNAME": {
    "Status": 1234,
    "information": "Has something here"
  },
  ...
}

我当前的代码是这样的:

let array = []
rows.forEach((row) => {
  let obj = {
    Name: row.name,
    Status: 1234,
    "information": "Has Something here"
  }
  array.push(obj)
})

我试过几种方法,比如先建包含名称的数组再给每个名称加对象,但没成功。还试过用array.push({[row.name]: {"Status": 1234, "information": "Has something here"}})往数组里加元素,结果得到的是下面这样,不是我要的结构:

[{
    "USERNAME": {
      "Status": 1234,
      "information": "Has something here"
    }
  },
  ...
]

解决方案

你不需要用数组存储结果,直接初始化一个空对象,遍历的时候把每个用户名作为键,对应的状态和信息组成的对象作为值赋值进去即可。

方法一:使用forEach遍历构建

// 初始化空对象而非数组
let resultObj = {};
rows.forEach((row) => {
  // 以用户名为键,状态和信息组成的对象为值
  resultObj[row.name] = {
    Status: 1234,
    information: "Has something here"
  };
});

方法二:用Object.fromEntries简洁实现

const resultObj = Object.fromEntries(
  rows.map(row => [
    row.name, 
    { Status: 1234, information: "Has something here" }
  ])
);

两种方法最终都会得到你需要的键值对结构,每个用户名对应其状态和信息对象。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:46