需求描述:
一个树形下拉框,通过默认数据获取任意子节点的所有父节点id
思路:
1循环节点,判断是否是默认节点,是则保存到数组,否则判断是否有子节点,有则调用本身循环,并进行数组合并,没有子节点就重置数组并进入下一个循环,直到查到指定默认节点时,返回数组。
代码:
data: [{
id: 1,
label: '一级 1',
children: [{
id: 4,
label: '二级 1-1',
children: [{
id: 9,
label: '三级 1-1-1'
}, {
id: 10,
label: '三级 1-1-2'
}]
}]
}, {
id: 2,
label: '一级 2',
children: [{
id: 5,
label: '二级 2-1'
}, {
id: 6,
label: '二级 2-2'
}]
}, {
id: 3,
label: '一级 3',
children: [{
id: 7,
label: '二级 3-1'
}, {
id: 8,
label: '二级 3-2'
}]
}],
getparentlist(code, tree) {
let arr = [] //要返回的数组
for (let i = 0; i < tree.length; i++) {
let item = tree[i]
arr = []
arr.push(item.id) //保存当前节点id