在JavaScript中将两个对象合并到数组中

在JavaScript中将两个对象合并到数组中,javascript,Javascript,我有两个类似这样的对象,需要组合它们并创建一个数组 var firstData = { label: "Out", data: [ { value: 2, title: "20-06-18 09:00", }, { value: 5, title: "20-0

我有两个类似这样的对象,需要组合它们并创建一个数组

        var firstData = {
          label: "Out",
          data: [
            {
              value: 2,
              title: "20-06-18 09:00",
            },
            {
              value: 5,
              title: "20-06-18 08:00",
            }
          ]
        }

        var secondData = {
          label: "In",
          data: [
            {
              value: 4,
              title: "20-06-18 09:00",
            },
            {
              value: 8,
              title: "20-06-18 08:00",
            }
          ]
        }
结果应该是这样一个数组,一个对象数组,其中您将标题与标签“In”和“Out”组合在一起


有人能帮忙吗?我会尽快发布一个小提琴手的例子。提前谢谢

您可以利用
reduce
来完成您的任务:

var firstData={label:“Out”,数据:[{value:2,标题:“20-06-18 09:00”,},{value:5,标题:“20-06-18 08:00”,}]};
var secondData={label:“In”,数据:[{value:4,title:“20-06-18 09:00”,},{value:8,title:“20-06-18 08:00”,}]};
var result=Object.values([firstData,secondData])。reduce((acc,elem)=>{
elem.data.forEach(({value,title})=>{
acc[标题]=acc[标题]|{标题,数据:[]};
acc[title].data.push({value,label:elem.label});
});
返回acc;
},{}));

控制台日志(结果)您可以使用
减少
来完成您的任务:

var firstData={label:“Out”,数据:[{value:2,标题:“20-06-18 09:00”,},{value:5,标题:“20-06-18 08:00”,}]};
var secondData={label:“In”,数据:[{value:4,title:“20-06-18 09:00”,},{value:8,title:“20-06-18 08:00”,}]};
var result=Object.values([firstData,secondData])。reduce((acc,elem)=>{
elem.data.forEach(({value,title})=>{
acc[标题]=acc[标题]|{标题,数据:[]};
acc[title].data.push({value,label:elem.label});
});
返回acc;
},{}));
控制台日志(结果)
        var result = 
        [
          {
            title: "20-06-18 09:00",
            data: [
              {
                value: 4,
                label: "In",
              },
              {
                value: 2,
                label: "Out",
              }
            ]
          },
          {
            title: "20-06-18 08:00",
            data: [
              {
                value: 8,
                label: "In",
              },
              {
                value: 5,
                label: "Out",
              }
            ]
          },
        ]