Arrays 如何创建一个数组的组合?
我需要创建一个数组的组合 我有这样的数据,我需要安排图表系列的数据Arrays 如何创建一个数组的组合?,arrays,reactjs,arraylist,multidimensional-array,Arrays,Reactjs,Arraylist,Multidimensional Array,我需要创建一个数组的组合 我有这样的数据,我需要安排图表系列的数据 [ { "movingDuration":10, "parkedDuration":15, }, { "movingDuration":15, "parkedDuration":23, }, { "movingDuration":43,
[
{
"movingDuration":10,
"parkedDuration":15,
},
{
"movingDuration":15,
"parkedDuration":23,
},
{
"movingDuration":43,
"parkedDuration":26,
},
{
"movingDuration":67,
"parkedDuration":21,
},
{
"movingDuration":47,
"parkedDuration":54,
}
]
我期望通过以下方法得到这样的结果
[
{
"name":"Moving Duration",
"data":[
10,
15,
43,
67,
47
]
},
{
"name":"Parked Duration",
"data":[
15,
23,
26,
21,
54
]
}
]
任何帮助都将不胜感激。谢谢你这有帮助吗
const arr = [
{
movingDuration: 10,
parkedDuration: 15
},
{
movingDuration: 15,
parkedDuration: 23
},
{
movingDuration: 43,
parkedDuration: 26
},
{
movingDuration: 67,
parkedDuration: 21
},
{
movingDuration: 47,
parkedDuration: 54
}
];
const resultArray = [{ name: 'Moving Duration', data: [] }, { name: 'Parked Duration', data: [] }];
arr.forEach((ele) => {
resultArray[0].data.push(ele.movingDuration);
resultArray[1].data.push(ele.parkedDuration);
});
通过数组reduce to group by property key运行数据,然后将其映射到所需的结果对象格式
const formattedData = data.reduce((data, current) => {
Object.entries(current).forEach(([key, value]) => {
data[key] = [...(data[key] ?? []), value];
});
return data;
}, {});
const finalData = Object.entries(formattedData).map(([name, data]) => ({
name,
data
}));
const数据=[
{
移动时间:10分钟,
停车时间:15
},
{
移动时间:15分钟,
停车时间:23
},
{
移动持续时间:43,
停车时间:26
},
{
移动持续时间:67,
停车时间:21
},
{
移动持续时间:47,
停车时间:54
}
];
const formattedData=data.reduce((数据,当前)=>{
Object.entries(当前).forEach(([key,value])=>{
数据[键]=[…(数据[键]??[]),值];
});
返回数据;
}, {});
const finalData=Object.entries(formattedData.map)([name,data])=>({
名称
数据
}));
console.log(finalData)代码>如果有帮助,请告诉我
const origData=[
{
“移动持续时间”:10,
“停车持续时间”:15,
},
{
“移动持续时间”:15,
“停车持续时间”:23,
},
{
“移动持续时间”:43,
“停车持续时间”:26,
},
{
“移动持续时间”:67,
“停车持续时间”:21,
},
{
“移动持续时间”:47,
“停车持续时间”:54,
}
]
const cols=Object.keys(origData[0])
const result=cols.map(项=>{
const data=origData.map(i=>i[item])
返回{name:item,data}
})
console.log(结果)
.as控制台包装{最大高度:100%!重要;顶部:0;}
let数据=[
{
“移动持续时间”:10,
“停车持续时间”:15,
},
{
“移动持续时间”:15,
“停车持续时间”:23,
},
{
“移动持续时间”:43,
“停车持续时间”:26,
},
{
“移动持续时间”:67,
“停车持续时间”:21,
},
{
“移动持续时间”:47,
“停车持续时间”:54,
}
]
设sol={}
data.forEach(d=>{
设keys=Object.keys(d);
if(sol[键[0]]){
sol[keys[0]]=[…sol[keys[0]],d[keys[0]]
sol[keys[1]]=[…sol[keys[1]],d[keys[1]]
}否则{
sol[keys[0]]=[].concat(d[keys[0]])
sol[键[1]]=[].concat(d[键[1]])
}
})
让final=Object.keys(sol.map)(key=>{
设temp={}
临时[“名称”]=键
温度[“数据”]=sol[键]
返回温度
})
console.log(final)
我们可以使用方法创建一个对象,以从对象中获取值:
const result = data.reduce((a, c) => {
for (const key in c) {
a[key] = a[key] || {name: key, data: []};
a[key].data.push(c[key]);
}
return a;
}, {})
console.log(Object.values(result));
例如:
let数据=[
{
“移动持续时间”:10,
“停车持续时间”:15,
},
{
“移动持续时间”:15,
“停车持续时间”:23,
},
{
“移动持续时间”:43,
“停车持续时间”:26,
},
{
“移动持续时间”:67,
“停车持续时间”:21,
},
{
“移动持续时间”:47,
“停车持续时间”:54,
}
]
常量结果=数据减少((a,c)=>{
for(c中的常量键){
a[key]=a[key]|{name:key,data:[]};
a[key].data.push(c[key]);
}
返回a;
}, {})
console.log(Object.values(result))代码>工作正常。。。非常感谢。