关于如何“反向递归“处理树形数组父级节点的问题?
如何根据子节点的属性,设置父节点属性
从叶子结点的父节点开始向上递归
1、如果父节点只有一个子节点,那么其父节点的tag和子结点的tag一样
2、如果父节点多个子节点,且这些子节点的tag一样,那么其父节点的tag和也和子节点的tag一样
3、如果父节点多个子节点,且这些子节点的tag不是全部一样,那么其父节点的tag为空
// 情况一
// 输入
var data = [
{
"label": "B1",
"tag": "随便",
"children": [
{
"label": "B1.1",
"tag": "随便",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
}
]
}
]
}
]
// 输出
var result = [
{
"label": "B1",
"tag": "一级",
"children": [
{
"label": "B1.1",
"tag": "一级",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
}
]
}
]
}
]
// 情况二
// 输入
var data = [
{
"label": "B1",
"tag": "随便",
"children": [
{
"label": "B1.1",
"tag": "随便",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
},
{
"label": "B1.1.2",
"tag": "一级",
"children": []
}
]
}
]
}
]
// 输出
var data = [
{
"label": "B1",
"tag": "一级",
"children": [
{
"label": "B1.1",
"tag": "一级",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
},
{
"label": "B1.1.2",
"tag": "一级",
"children": []
}
]
}
]
}
]
// 情况三
// 输入
var data = [
{
"label": "B1",
"tag": "随便",
"children": [
{
"label": "B1.1",
"tag": "随便",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
},
{
"label": "B1.1.2",
"tag": "二级",
"children": []
}
]
}
]
}
]
// 输出
var data = [
{
"label": "B1",
"tag": "",
"children": [
{
"label": "B1.1",
"tag": "",
"children": [
{
"label": "B1.1.1",
"tag": "一级",
"children": []
},
{
"label": "B1.1.2",
"tag": "二级",
"children": []
}
]
}
]
}
]
如何编写函数处理这个树形数组
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以试试:
希望能帮助到你。