概述
根据子节点递归获取所有父类id的数组
JSON数据(这里直接使用iview级联选择器里面的示例数据)
let nodes = [{
value: 'beijing',
label: '北京',
children: [{
value: 'gugong',
label: '故宫'
},
{
value: 'tiantan',
label: '天坛'
},
{
value: 'wangfujing',
label: '王府井'
}
]
}, {
value: 'jiangsu',
label: '江苏',
children: [{
value: 'nanjing',
label: '南京',
children: [{
value: 'fuzimiao',
label: '夫子庙',
}]
},
{
value: 'suzhou',
label: '苏州',
children: [{
value: 'zhuozhengyuan',
label: '拙政园',
},
{
value: 'shizilin',
label: '狮子林',
}
]
}
],
}]
JS代码
// 根据子节点id递归获取所有父类的id
let code = 'shizilin'
//子节点id
狮子林
function treeFindPath (tree, func, path = []) {
if (!tree) return []
for (const data of tree) {
path.push(data.value)
if (func(data)) return path
if (data.children) {
const findChildren = treeFindPath(data.children, func, path)
if (findChildren.length) return findChildren
}
path.pop()
}
return []
}
//将递归获取到的数组赋值给result
let result = treeFindPath(nodes, node => node.value === code)
console.log(result,'result')
输出结果
["jiangsu","suzhou","shizilin"]
//result
江苏
苏州
狮子林
最后
以上就是纯真音响为你收集整理的iView级联选择器回显问题(根据子节点id递归获取所有父类id的数组)的全部内容,希望文章能够帮你解决iView级联选择器回显问题(根据子节点id递归获取所有父类id的数组)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复