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

如何使用Array.reduce方法将对象数组转换为以指定属性为键的对象?

使用Array.reduce将对象数组转换为指定结构的对象

直接用Array.reduce就能实现这个需求,核心是在每次迭代中提取元素的id作为新对象的键,同时剔除id属性后将剩余内容作为对应的值,逐步构建目标对象:

const data = [
  {
    id: "first",
    name: "Product 1",
    type: "selection"
  },
  {
    id: "second",
    name: "Product 2",
    type: "text"
  },
  {
    id: "third",
    name: "Product 3",
    type: "csv"
  }
];

const result = data.reduce((acc, item) => {
  // 解构出id和剩余属性
  const { id, ...rest } = item;
  // 将id作为键,剩余属性作为值存入累加器
  acc[id] = rest;
  // 返回累加器供下一次迭代使用
  return acc;
}, {}); // 初始值设为空对象

console.log(result);

代码说明

  • reduce的第一个参数是回调函数,接收两个核心参数:acc(累加器,每次迭代后保存的结果)和item(当前遍历到的数组元素)。
  • 用对象解构语法{ id, ...rest }把当前元素的id单独取出,剩下的name和type属性存入rest对象。
  • 把acc中对应id的键赋值为rest,然后返回acc继续迭代。
  • 第二个参数{}是reduce的初始值,也就是第一次迭代时acc的初始状态。

运行这段代码后,就能得到你需要的目标结构对象。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:45:15