在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",
}
]
},
]