【发布时间】:2019-11-15 07:10:31
【问题描述】:
我有一个对象数组,深度未定义。 现在我希望将名称输出如下:
Top Level
Top Level > Sub 1
Top Level > Sub 1 > Sub 1-2
Top Level > Sub 2
但是,我总是只得到最低的元素。我不知道我还可以更改什么来正确格式化名称。
parseCategories(categories, stackCounter = 0) {
categories.forEach(c => {
this.res[stackCounter] = { name: c.attributes.name, id: c.id };
if(c.children.length >= 1) {
this.parseCategories(c.children, stackCounter + 1);
}
});
return this.res;
}
我的对象如下所示:
{
"data":[
{
"type":"categories",
"id":"1",
"attributes":{
"name":"Top Level"
},
"children":[
{
"type":"categories",
"id":"2",
"attributes":{
"name":"Sub 1"
},
"children":[
{
"type":"categories",
"id":"4",
"attributes":{
"name":"Sub 1-2"
},
"children":[
]
}
]
},
{
"type":"categories",
"id":"3",
"attributes":{
"name":"Sub 2"
},
"children":[
]
}
]
}
]
}
【问题讨论】:
-
你可能想看看这个:stackoverflow.com/questions/9396569/…,这个:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。 javascript 还有一个 Map() 函数和一个 flatMap() 函数可以帮助你。
-
我不需要检查道具是否可用,我知道它们是可用的,我搜索了一个解决方案,将上面的类别名称与子名称连接起来
标签: javascript vue.js recursion