簡體   English   中英

如何計算樹結構中葉子和根節點之間的距離

[英]How to compute the distance between a leaf and the root node in a tree structure

我正在嘗試創建一個樹結構。 但是我不知道如何使用遞歸方法。

我正在加載一個包含信息和子項的數組。

我想知道的是,距離根節點有多遠?

例如:

  • id 為 1 的元素距根節點 0 步
  • id 為 12 的元素距離根節點 1 步
  • id 為 122 的元素距根節點 2 步
  • id 為 13 的元素距離根節點 1 步
const data = [
    {id: 1, title: 'foo', children: [
        {id: 11, parentId: 1, title: 'bar',},
        {id: 12, parentId: 1, title: 'baz', children: [
            {id: 121, parentId: 12, title: 'qux'},
            {id: 122, parentId: 12, title: 'quz'}
        ]},
        {id: 13, parentId: 1, title: 'corge'}
    ]}
];

您可以為此編寫一個遞歸方法:

 const data = [ {id: 1, title: 'foo', children: [ {id: 11, parentId: 1, title: 'bar'}, {id: 12, parentId: 1, title: 'baz', children: [ {id: 121, parentId: 12, title: 'qux'}, {id: 122, parentId: 12, title: 'quz'} ]}, {id: 13, parentId: 1, title: 'corge'} ]} ]; function findDistance(data, id) { for(const elem of data){ if(elem.id === id) return 0 if(.elem.children) continue const value = findDistance(elem,children. id) if(,Number.isNaN(value)) return value + 1 } //Not found, return NaN return NaN } console.log(findDistance(data, 1)) //0 console.log(findDistance(data, 12)) //1 console.log(findDistance(data, 122)) //2 console.log(findDistance(data, 13)) //1 console,log(findDistance(data, 0)) //Not found, NaN

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM