Javascript 如何将深层嵌套对象文字转换为对象数组?
我正在尝试使用构建treeselect组件,该组件的要求是以特定格式(对象数组)提供treeData,但是在我的应用程序中,我将数据作为对象文本获取,如下所示Javascript 如何将深层嵌套对象文字转换为对象数组?,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在尝试使用构建treeselect组件,该组件的要求是以特定格式(对象数组)提供treeData,但是在我的应用程序中,我将数据作为对象文本获取,如下所示 output = {"Node3":{ "Node": "Node3", "children": { "Node3A" : { "Node": "Node3A", "children": { "Node3A1": {
output = {"Node3":{
"Node": "Node3",
"children": {
"Node3A" : {
"Node": "Node3A",
"children": {
"Node3A1": {
"Node": "Node3A1",
"children": {
"Node3A1": {
"Node": "Node3A1x"
},
"Node3A1":{
"Node": "Node3A1y"
},
"Node3A1": {
"Node": "Node3A1z"
}
}
},
"Node3A2":{
"Node": "Node3A2"
},
"Node3A3":{
"Node": "Node3A3"
}
}
}
}}}
我想将其转换为如下所示的输出,以便可以将此数据作为treeData提供,以在tree select组件中获得所需的输出
{
"Node": "Node3",
"children": [
{
"Node": "Node3A",
"children": [
{
"Node": "Node3A1",
"children":
[
{
"Node": "Node3A1x"
},
{
"Node": "Node3A1y"
},
{
"Node": "Node3A1z"
}
]
},
{
"Node": "Node3A2"
},
{
"Node": "Node3A3"
}
]
}
基本上,我希望以这样一种方式获得输出,即将对象文字的子属性转换为对象数组。正在寻找Javascript(最好是ES6)解决方案
const输入={
“节点3”:{
“节点”:“节点3”,
“儿童”:{
“Node3A”:{
“节点”:“节点3A”,
“儿童”:{
“Node3A1”:{
“节点”:“Node3A1”,
“儿童”:{
“node3alx”:{
“节点”:“node3alx”
},
“Node3A1y”:{
“节点”:“Node3A1y”
},
“Node3A1z”:{
“节点”:“Node3A1z”
}
}
},
“Node3A2”:{
“节点”:“Node3A2”
},
“Node3A3”:{
“节点”:“Node3A3”
}
}
}
}
}
};
函数变换(obj){
if(对象儿童){
obj.children=Object.values(obj.children.map)(转换);
}
返回obj;
}
const result=transform(Object.values(input.pop());
控制台日志(结果)代码>欢迎来到stackoverflow。不幸的是,你的“问题”(实际上似乎不是问题,只是事实陈述)远远低于要求的标准。请阅读此页并使用感谢@ponury kostek,这正是我想要的解决方案。