tree 根据当前节点获取所有父节点

98 阅读1分钟

getNodeParents(map, key) { let t = [] for (let i = 0; i < map.length; i++) { const e = map[i] if (e.id === key) { //若查询到对应的节点,则直接返回 t.push(e.id) break } else if (e.children && e.children.length !== 0) { //判断是否还有子节点,若有对子节点进行循环调用 let p = this.searchParent(e.children, key) //若p的长度不为0,则说明子节点在该节点的children内,记录此节点,并终止循环 if (p.length !== 0) { p.unshift(e.id) t = p break } } } return t }

getNodeParents(data,'1698578019674886144')

const data = [{ "id": "1", "label": "宝鸡市公安局", "children": [ { "id": "1719247786848948224", "label": "123", }, { "id": "1698576448228560896", "label": "渭滨分局", }, { "id": "2", "label": "金台分局", "children": [ { "id": "1698577622390411264", "label": "中山东路派出所", }, { "id": "3", "label": "陈仓派出所", "children": [ { "id": "1698578019674886144", "label": "陈仓区警务室",
} ] }, { "id": "111111111111111", "label": "西关街道分局", "children": [ { "id": "333", "label": "西关派出所1", }, { "id": "222222222", "label": "西关街道派出所", } ] } ] } ] } ]