计算树结点路径的一种Javascript的实现
时间:2022-06-22
本文章向大家介绍计算树结点路径的一种Javascript的实现,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
树结构如下:
const tree = [
{
id: '00',
name: '南京理工大学',
children: [
{
id: '0001',
name: '化工学院',
children: [
{
id: '000101',
name: '有机化学',
},
{
id: '000102',
name: '无机化学',
children: [
{
id: '00010201',
name: '无机1组',
},
{
id: '00010202',
name: '无机2组',
}
]
}
]
},
{
id: '0002',
name: '计算机学院',
children: [
{
id: '000201',
name: '硬件学院',
},
{
id: '000202',
name: '软件学院',
children: [
{
id: '00020201',
name: 'Java学院'
},
{
id: '00020202',
name: 'C#学院'
}
]
}
]
}
]
}
];
主要算法如下:
function makePath(tree, target) {
var done = false, path = [];
function traverse(tree, target) {
for (let i = 0; i < tree.length; i++) {
const node = tree[i];
if (!done) {
if (i > 0) {
path.pop();
}
path.push(node.id);
if (node.id === target) {
done = true;
return;
} else {
let children = node.children;
if (children) {
traverse(children, target);
}
}
}
}
if (!done) {
path.pop();
}
return;
};
traverse(tree, target);
return path;
};
makePath(tree, '000101');
运行结果:
[ '00', '0001', '000101' ]
感谢大家阅读,另外,在这边帮朋友推一个爱心众筹,希望大家能够奉献点爱心,朋友母亲,身患直肠癌,目前在北京武警总医院接收治疗,可留言留下您的联系方式,日后感激大家!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP addcslashes()函数讲解
- 浅谈优化Django ORM中的性能问题
- PHP chr()函数讲解
- iOS音视频接入 - TRTC常见问题
- PHP常见的几种攻击方式实例小结
- PHP strripos函数用法总结
- Laravel5.0+框架邮件发送功能实现方法图文与实例详解
- Ajax+PHP实现的删除数据功能示例
- tensorflow下的图片标准化函数per_image_standardization用法
- 浅析Python面向对象编程
- Python单元测试及unittest框架用法实例解析
- Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
- YII框架实现自定义第三方扩展操作示例
- 在Tensorflow中实现leakyRelu操作详解(高效)
- Django def clean()函数对表单中的数据进行验证操作