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

如何将含嵌套数组的对象转换为指定结构的数组?

如何将嵌套数组的对象数组展平为指定结构?

原始数据

const data = [
  {
    role: "admin",
    users: [
      {
        name: "john",
        user_id: "1234",
      },
      {
        name: "Peter",
        user_id: "4321",
      },
    ],
  },
];

目标结构

[
  {role: "admin", name: "john", user_id: "1234"},
  {role: "admin", name: "Peter", user_id: "4321"}
]

解决方案

方法一:使用flatMap结合map

flatMap会先映射数组元素,再自动展平结果,是处理这类嵌套结构的高效方式:

const result = data.flatMap(item => 
  item.users.map(user => ({
    role: item.role,
    ...user
  }))
);

console.log(result);

方法二:使用reduce手动累加

如果需要更精细的流程控制,可通过reduce逐步合并结果:

const result = data.reduce((acc, item) => {
  const userEntries = item.users.map(user => ({
    role: item.role,
    ...user
  }));
  return acc.concat(userEntries);
}, []);

console.log(result);

方法三:普通双层for循环

基础写法,逻辑直观易懂:

const result = [];
for (const group of data) {
  for (const user of group.users) {
    result.push({
      role: group.role,
      ...user
    });
  }
}

console.log(result);

内容的提问来源于stack exchange,提问作者João Pires

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:15:54