根據(jù)某個(gè)樹節(jié)點(diǎn)找出此節(jié)點(diǎn)以上的路徑

一、找節(jié)點(diǎn)以上路徑

    // 根據(jù)節(jié)點(diǎn)找出路徑
      getPathByTheNode(treeData, key, attr) {
        // 首先我們先定義個(gè)數(shù)組,用來(lái)保存路徑節(jié)點(diǎn)id
        let nodePathArray = []

        // (tree為目標(biāo)樹,targetId為目標(biāo)節(jié)點(diǎn)id)
        function getNodeRoute(tree, targetId) {
          for (let index = 0; index < tree.length; index++) {
            if (tree[index].children) {
              let endRecursiveLoop = getNodeRoute(tree[index].children, targetId)
              if (endRecursiveLoop) {
                nodePathArray.push(tree[index][attr])
                return true
              }
            }
            if (tree[index][attr] === targetId) {
              nodePathArray.push(tree[index][attr])
              return true
            }
          }
        }

        getNodeRoute(treeData, key) //查找id為112的節(jié)點(diǎn)路徑
        let res = nodePathArray.reverse().join('->')
        return res
      },

// 調(diào)用
this.leftChildObj.treeData為樹形樹的數(shù)據(jù)
let res = this.getPathByTheNode(this.leftChildObj.treeData, e.node.dataRef.title,'title')
console.log(res)
Snipaste_2021-04-07_12-53-15.png
Snipaste_2021-04-07_12-54-32.png
Snipaste_2021-04-07_12-55-16.png
Snipaste_2021-04-07_12-55-36.png

二、找出樹所有路徑
1.先找出最底層節(jié)點(diǎn),沒(méi)有子級(jí)或者子級(jí)長(zhǎng)度為0

      findIdByName(initObj) {
        let arr = []

        function find(obj) {
          for (let i = 0; i < obj.length; i++) {
            if (!obj[i].children || obj[i].children.length === 0) {
              arr.push(obj[i].title)
            } else {
              find(obj[i].children);
            }
          }
        }

        find(initObj);
        return arr
      },

2.遍歷最底層節(jié)點(diǎn),根據(jù)某個(gè)樹節(jié)點(diǎn)找出此節(jié)點(diǎn)以上的路徑

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容