javascript - 如何合并嵌套对象数组的内容?

标签 javascript arrays reactjs

我有一个名为 allLeads 的对象数组,它存储数组中每个项目的 leadNameleadId 以及一个名为 Leads 的项目这是另一个对象数组。

但目前我从后端接收数据的方式是,leads 数组一次仅存储一个对象。我想为每个 leadIdleadName 合并此潜在客户数组

目前情况如何

const allLeads = [
  {
    leadName: "software development",
    leadId: 123,
    leads: [{ profile: "hello", url: "bye" }]
  },
  {
    leadName: "software development",
    leadId: 123,
    leads: [{ profile: "lets", url: "go" }]
  },
  {
    leadName: "business development",
    leadId: 234,
    leads: [{ profile: "dont", url: "try" }]
  },
  {
    leadName: "business development",
    leadId: 234,
    leads: [{ profile: "other", url: "side" }]
  }
];

我想要怎样

const allLeads = [
  {
    leadName: "software development",
    leadId: 123,
    leads: [{ profile: "hello", url: "bye" }, { profile: "lets", url: "go" }]
  },
  {
    leadName: "business development",
    leadId: 234,
    leads: [{ profile: "dont", url: "try" }, { profile: "other", url: "side" }]
  }
];

最佳答案

const allLeads = [
  {
    leadName: "software development",
    leadId: 123,
    leads: [{ profile: "hello", url: "bye" }]
  },
  {
    leadName: "software development",
    leadId: 123,
    leads: [{ profile: "lets", url: "go" }]
  },
  {
    leadName: "business development",
    leadId: 234,
    leads: [{ profile: "dont", url: "try" }]
  },
  {
    leadName: "business development",
    leadId: 234,
    leads: [{ profile: "other", url: "side" }]
  }
];
function handle(array) {
  let obj = array.reduce((acc, cur) => {
    acc[cur.leadId] = acc[cur.leadId] || {};
    acc[cur.leadId].leads = acc[cur.leadId].leads || [];
    acc[cur.leadId].leadName = cur.leadName;
    acc[cur.leadId].leadId = cur.leadId;
    acc[cur.leadId].leads.push(...cur.leads);
    return acc;
  }, {});
  return Object.values(obj);
}
  console.log(handle(allLeads))

关于javascript - 如何合并嵌套对象数组的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61041759/

相关文章:

javascript - Angular : how to iterate through all indices in an array except the final index using ng-repeat

javascript - 多个 Canvas 和 JSON 加载几何图形时出现 Three.js 错误

javascript - 遍历对象,知道你何时进行最后一次迭代

C++ 为多维数组赋值

javascript - 在 SVG 动画中围绕舞台原点以外的位置旋转路径

java - 获取字符串在字符串数组中的索引

Java - 打印映射到从文件读取的键的值

reactjs - 前端使用JWT工作的流程是怎样的?

reactjs - Hooks API - 在等待语句后设置状态时避免状态覆盖

reactjs - 使用 react 路由器发送状态不起作用