【发布时间】:2020-08-19 22:19:31
【问题描述】:
我一直在尝试将以下平面数组(参与,见下文)重组为更有条理的树形式,以便我可以使用同步融合的树网格组件。我试过使用 .reduce() 函数。但似乎我无法做出正确的结构。我也尝试过 lodash 按唯一 ID 对它们进行分组。无论如何,这是这个平台上的某个人帮助前进的: 起始阵列参与如下。 一些属性的名称也需要重命名。
//what ive tried so far
const custommodifier = (participations) => participations.reduce((a,{KlasCode, LESDatum, LESID, Moduleomschrijving,ParticipationLetterCode}) => {
if (a[KlasCode] ){
if (a[ParticipationLetterCode] ){
a[KlasCode].subtasks[0].subtasks[0].subtasks.push({
// ParticipationLetterCode,
taskName: LESDatum,
LESID,
})
} else {
// a[KlasCode].subtasks[0].subtasks[0].taskName = ParticipationLetterCode
a[KlasCode].subtasks[0].subtasks.push({
taskName: ParticipationLetterCode,
subtasks: [{
taskName: LESDatum,
}]
})
}
} else {
a[KlasCode] = {
taskName: KlasCode,
subtasks: [{
taskName:Moduleomschrijving,
subtasks: [{
taskName: ParticipationLetterCode,
subtasks: [{
// ParticipationLetterCode,
taskName: LESDatum,
LESID,
}]
}]
}]
}
}
return a;
}, {});
您可以在下面找到自定义函数应使其看起来的正确数据结构。 谢谢看到这个的人
//starting point
let participations = [{
KlasCode: "1S RD BJ GS ma-d",
LESDatum: "12/12/20",
LESID: "1",
ModuleID: "1050",
Moduleomschrijving:"Realisaties blouse/jurk",
ParticipationLetterCode: "X"
}, {
KlasCode: "1S RD BJ GS ma-d",
LESDatum: "11/11/20",
LESID: "2",
ModuleID: "1050",
Moduleomschrijving:"Realisaties blouse/jurk",
ParticipationLetterCode: "X",
},
{
KlasCode: "1S RD BJ GS ma-d",
LESDatum: "1/1/20",
LESID: "3",
ModuleID: "1050",
Moduleomschrijving:"Realisaties blouse/jurk",
ParticipationLetterCode: "Y"
},
{
KlasCode: "2S RD BJ RR ma-d",
LESDatum: "5/12/20",
LESID: "4",
ModuleID: "1051",
Moduleomschrijving:"Realisaties shirts",
ParticipationLetterCode: "Z"
},
{
KlasCode: "2S RD BJ RR ma-d",
LESDatum: "6/11/20,
LESID: "4",
ModuleID: "1051",
Moduleomschrijving:"Realisaties shirts",
ParticipationLetterCode: "Z"
}
]
// Need to make the data look like this including field name change:
let participations = [{
"taskName": "1S RD BJ GS ma-d",
"subtasks": [{
"ModuleID": "1050",
"taskName": "Realisaties blouse/jurk",
"subtasks": [{
"taskName": "X",
"subtasks": [{
"taskName": "12/12/20",
"LESID": "1",
},
{
"taskName": "11/11/20",
"LESID": "2",
}
],
},
{
"taskName": "Y",
"subtasks": [{
"taskName": "1/1/20",
"LESID": "3",
}]
}
]
}]
},
{
"taskName": "2S RD BJ RR ma-d",
"subtasks": [{
"ModuleID": "1051",
"taskName": "Realisaties shirts",
"subtasks": [{
"taskName": "Z",
"subtasks": [{
"taskName": "5/12/20",
"LESID":"4"
},
{
"taskName": "6/11/20",
"LESID":"5"
}
],
}
]
}]
}]
【问题讨论】:
标签: javascript arrays vue.js lodash syncfusion