typescript递归遍历tree
时间: 2023-07-24 22:14:58 浏览: 37
假设你有一个树形结构的数据:
```typescript
interface TreeNode {
id: number;
label: string;
children?: TreeNode[];
}
```
你可以使用递归函数来遍历这个树:
```typescript
function traverseTree(node: TreeNode) {
console.log(node.label);
if (node.children) {
node.children.forEach((child) => {
traverseTree(child);
});
}
}
```
这个函数首先输出当前节点的标签,然后检查是否有子节点。如果有子节点,就对每个子节点递归调用 `traverseTree` 函数,直到所有节点都被遍历完。
可以这样调用这个函数:
```typescript
const tree: TreeNode = {
id: 1,
label: "Root",
children: [
{
id: 2,
label: "Child 1",
children: [
{
id: 3,
label: "Grandchild 1",
children: [
{
id: 4,
label: "Great Grandchild 1",
},
],
},
],
},
{
id: 5,
label: "Child 2",
},
],
};
traverseTree(tree);
```
这将输出以下内容:
```
Root
Child 1
Grandchild 1
Great Grandchild 1
Child 2
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)