问题描述
我有这三个嵌套的类。
1级=章对象
export class Chapter {
constructor() {
this.groups = new Array<Group>();
}
chapterID: number;
chapterDescription: string;
groups: Array<Group>;
}
2级=组对象
export class Group {
constructor() {
this.subGroups = new Array<SubGroup>();
}
chapterID: number;
groupID: number;
groupDescription: string;
subGroups: Array<SubGroup>;
}
第3级=子组对象
export class SubGroup {
chapterID: number;
groupID: number;
subGroupID: number;
subGroupDescription: string;
}
从后端我收到以下数组:
[
{
"chapterID": 1,"chapterDescription": "CHAPTER A","groups": [
{
"chapterID": 1,"groupID": 37,"groupDescription": "GROUP 37","subGroups": [
{
"chapterID": 1,"subGroupID": 1,"subGroupDescription": "Subgroup 1"
},{
"chapterID": 1,"subGroupID": 21,"subGroupDescription": "SubGroup 21"
},"subGroupID": 23,"subGroupDescription": "SubGroup 23"
}]
}]
},{
"chapterID": 2,"chapterDescription": "CHAPTER B","groups": [
{
"chapterID": 2,"groupID": 7,"groupDescription": "GROUP 7","subGroups": [
{
"chapterID": 2,"subGroupDescription": "Subgroup 23"
},{
"chapterID": 2,"subGroupID": 8,"subGroupDescription": "Subgroup 8"
},"subGroupID": 13,"subGroupDescription": "Subgroup 13"
}]
},{
"chapterID": 2,"groupID": 5,"groupDescription": "GROUP 5","subGroupID": 3,"subGroupDescription": "Subgroup 3"
}]
},"groupID": 36,"groupDescription": "GROUP 36","subGroupID": 9,"subGroupDescription": "Subgroup 9"
},"subGroupDescription": "Subgroup 3"
},"subGroupDescription": "Subgroup 8"
}]
}]
}]
我现在想将此数据映射到Chapters,Groups和SubGroups的单独数组,但没有嵌套属性。 要获取Chapter对象的数组,我可以执行以下操作:
const chapters = data.map((c) => {
return { "chapterID": c.chapterID,"chapterDescription": c.chapterDescription }
});
但是如何将这种数据的第二和第三级分别分解为这样的组和子组数组?将分组数组属性保留在分组之外。
//组
[
{
"chapterID": 1,"groupDescription": "GROUP 37"
},"groupDescription": "GROUP 7"
},"groupDescription": "GROUP 5"
},"groupDescription": "GROUP 36"
}]
//子组
[
{
"chapterID": 1,"subGroupDescription": "Subgroup 1"
},{
"chapterID": 1,"subGroupDescription": "SubGroup 21"
},...
{
"chapterID": 2,"subGroupDescription": "Subgroup 8"
}]
问题描述的更新:
让我在这里阐明我的目标。我从后端接收的数据用于3个级别的树形视图(第->组-子组)。每个章节可以包含一个或多个组。一组只能属于一个章节。每个组可以包含一个或多个子组。一个子组只能属于一个组。 在树视图旁边,我还想要3个包含相同数据的级联组合框。树形视图选择中的更改应反映在组合框中,反之亦然。这意味着:如果触发了nodeClick事件,则组合框中的选择应相应更改。另一方面,如果更改一个组合框的选择,则应在树视图中选择此唯一节点。所以我想:因为我已经从后端收到了所有可用数据,所以我可以以某种方式“分解”原始数组,以便填写组合框。我明确地说“解构”,因为我认为这是解决方案。对于这种方法的任何其他想法都是很不受欢迎的。我可以在foreach循环中完成此操作,但是我正在寻找更有效的方法(如果有)。 预先感谢您让我走上正轨...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)