【发布时间】:2019-11-03 14:22:53
【问题描述】:
我需要更改由对象和数组组成的复杂 json 结构的结构。 假设原始对象是 dataObj
const dataObj = {
name: "flare",
children: [
{
name: "analytics",
desc : "A",
children: [
{
name: "cluster",
desc : "AB",
children: [
{
name: "AgglomerativeCluster",
desc : "ABC",
value: 3938,
count:39
},
{
name: "CommunityStructure",
desc : "ABCD",
value: 3812,
count:38
},
]
},
{
name: "graph",
desc : "ABCDE",
children: [
{
name: "BetweennessCentrality",
desc : "AHF",
value: 3534,
count:39
},
{
name: "LinkDistance",
desc : "AmH",
value: 5731,
count:39
},
]
},
{
name: "optimization",
desc : "Ashg",
children: [
{
name: "AspectRatioBanker",
desc : "Avnvs",
value: 7074,
count:39
}
]
}
]
},
{
name: "animate",
desc : "Amvs",
children: [
{
name: "Easing",
desc : "Amnvs",
value: 17010,
count:39
},
{
name: "FunctionSequence",
desc : "Abnvs",
value: 5842 ,
count:39
},
]
},
]
};
我需要获取最后一个由键“value”和“count”组成的子节点 例如:
children: [
{
name: "AgglomerativeCluster",
desc : "ABC",
value: 3938,
count:39
},
{
name: "CommunityStructure",
desc : "ABCD",
value: 3812,
count:38
},
]
这是最后一个带有键“value”和“count”的叶节点,我需要对其进行重组并以这种格式制作子节点
children: [
{
name: "AgglomerativeCluster",
desc : "ABC",
children : [
{
name: "AgglomerativeCluster",
desc : "ABC",
value: 3938,
count:39
}
]
},
{
name: "CommunityStructure",
desc : "ABCD",
children : [
{
name: "CommunityStructure",
desc : "ABCD",
value: 3812,
count:38
}
]
},
]
你可以再次看到这个子节点应该有一个 children 键,我需要在其中传递具有相同“name”和“desc”键的 value 和 count 键。我无法理解逻辑,它看起来超级复杂,任何人都可以解决这个问题?
预期结果:
const result = {
name: "flare",
children: [
{
name: "analytics",
desc : "A",
children: [
{
name: "cluster",
desc : "AB",
children: [
{
name: "AgglomerativeCluster",
desc : "ABC",
children : [
{
name: "AgglomerativeCluster",
desc : "ABC",
value: 3938,
count:39
}
]
},
{
name: "CommunityStructure",
desc : "ABCD",
children : [
{
name: "CommunityStructure",
desc : "ABCD",
value: 3812,
count:38
}
]
},
]
},
{
name: "graph",
desc : "ABCDE",
children: [
{
name: "BetweennessCentrality",
desc : "AHF",
children : [
{
name: "BetweennessCentrality",
desc : "AHF",
value: 3534,
count:39
}
]
},
{
name: "LinkDistance",
desc : "AmH",
children : [
{
name: "LinkDistance",
desc : "AmH",
value: 5731,
count:39
}
]
},
]
},
{
name: "optimization",
desc : "Ashg",
children: [
{
name: "AspectRatioBanker",
desc : "Avnvs",
children : [
{
name: "AspectRatioBanker",
desc : "Avnvs",
value: 7074,
count:39
}
]
}
]
}
]
},
{
name: "animate",
desc : "Amvs",
children: [
{
name: "Easing",
desc : "Amnvs",
children : [
{
name: "Easing",
desc : "Amnvs",
value: 17010,
count:39
}
]
},
{
name: "FunctionSequence",
desc : "Abnvs",
children : [
{
name: "FunctionSequence",
desc : "Abnvs",
value: 5842 ,
count:39
}
]
},
]
},
]
};
【问题讨论】:
标签: javascript arrays json object