[英]How to insert object of label and value inside array
I have this data:我有这个数据:
let array = [
{name:"20220503",num:"0900"}
{name:"20220503",num:"1500"},{name:"20220503",num:"1700"},
{name:"20220504",num:"2000"}, {name:"20220505",num:"1100"},
{name:"20220505",num:"1300"}
];
I want to make it become like this:我想让它变成这样:
{
'20220503':
{
list: [ '0900', '1500', '1700' ],
data: [
{
label: 0900
value: 0900
},
{
label: 1500
value: 1500
},
{
label: 1700
value: 1700
}
]
},
'20220504':
{
list: [ '2000' ],
data: [
{
label: 2000
value: 2000
},
]
},
'20220505':
{
list: [ '1100', '1300' ],
data: [
{
label: 1100
value: 1100
},
{
label: 1300
value: 1300
},
]
}
}
This is what i have done so far:这是我到目前为止所做的:
let array = [
{date:"20220503",time:"0900"},
{date:"20220503",time:"1500"},
{date:"20220503",time:"1700"},
{date:"20220504",time:"2000"},
{date:"20220505",time:"1100"},
{date:"20220505",time:"1300"},
{date:"20220506",time:"100"},
{date:"20220507",time:"5300"},
{date:"20220507",time:"90100"},
{date:"20220509",time:"2100"}
]
let result = array.reduce((acc,{date,time}) => {
acc[date] = acc[date] || {list:[], data:[]}
acc[date].list.push(time)
acc[date].data.push(time)
return acc;
},{})
console.log(result)
But i only get result like this:但我只得到这样的结果:
{
'20220503': {
list: [
'0900',
'1500',
'1700'
],
data: [
'0900',
'1500',
'1700'
]
},
'20220504': {
list: [
'2000'
],
data: [
'2000'
]
},
'20220505': {
list: [
'1100',
'1300'
],
data: [
'1100',
'1300'
]
},
}
I am using Javascript我正在使用 Javascript
As @ChrisG already pointed out, you just have to change the acc[date].data.push
line.正如@ChrisG 已经指出的那样,您只需更改
acc[date].data.push
行。 And parse the strings into actual numbers:并将字符串解析为实际数字:
let array = [ {date:"20220503",time:"0900"}, {date:"20220503",time:"1500"}, {date:"20220503",time:"1700"}, {date:"20220504",time:"2000"}, {date:"20220505",time:"1100"}, {date:"20220505",time:"1300"}, {date:"20220506",time:"100"}, {date:"20220507",time:"5300"}, {date:"20220507",time:"90100"}, {date:"20220509",time:"2100"} ] let result = array.reduce((acc,{date,time}) => { acc[date] = acc[date] || {list:[], data:[]} acc[date].list.push(time) acc[date].data.push({ label: Number(time), value: Number(time) }); // <-- here return acc; },{}) console.log(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.