如何根据子节点的属性,设置父节点属性
从叶子结点的父节点开始向上递归
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": []
}
]
}
]
}
]
如何编写函数处理这个树形数组
可以试试:
希望能帮助到你。