[英]How to compute the distance between a leaf and the root node in a tree structure
我正在嘗試創建一個樹結構。 但是我不知道如何使用遞歸方法。
我正在加載一個包含信息和子項的數組。
我想知道的是,距離根節點有多遠?
例如:
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.