递归书写树形图示例

news2024/10/6 14:26:41

大叫好,今天书写了一个扁型转换为树型的例子,使用的是递归,请大家食用,无毒

        

<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<title>树结构</title>
	</head>
	<body>
		<script>
			let arr = [{
				id: 1,
				name: "中国",
				pid: 0
			}, {
				id: 78,
				name: "美国",
				pid: 0
			}, {
				id: 2,
				name: "河南",
				pid: 1
			}, {
				id: 3,
				name: "河北",
				pid: 1
			}, {
				id: 4,
				name: "新乡",
				pid: 2
			}, {
				id: 5,
				name: "开封",
				pid: 2
			}, {
				id: 6,
				name: "许昌",
				pid: 2
			}, {
				id: 7,
				name: "漯河",
				pid: 2
			}, {
				id: 8,
				name: "石家庄",
				pid: 3
			}, {
				id: 9,
				name: "邢台",
				pid: 3
			}, {
				id: 10,
				name: "秦皇岛",
				pid: 3
			}, {
				id: 11,
				name: "衡水",
				pid: 3
			}, {
				id: 12,
				name: "延津县",
				pid: 4
			}, {
				id: 13,
				name: "封丘县",
				pid: 4
			}, {
				id: 14,
				name: "长垣县",
				pid: 4
			}, {
				id: 15,
				name: "王楼镇",
				pid: 12
			}, {
				id: 16,
				name: "牛屯镇",
				pid: 12
			}, {
				id: 17,
				name: "王屯镇",
				pid: 12
			}, {
				id: 18,
				name: "刘庄乡",
				pid: 15
			}, {
				id: 19,
				name: "王庄乡",
				pid: 15
			}, {
				id: 20,
				name: "陈庄乡",
				pid: 15
			}, {
				id: 21,
				name: "娄庄乡",
				pid: 15
			}, {
				id: 22,
				name: "张庄乡",
				pid: 15
			}, {
				id: 23,
				name: "李庄乡",
				pid: 15
			}, {
				id: 24,
				name: "草庄乡",
				pid: 15
			}, {
				id: 25,
				name: "刘庄村",
				pid: 18
			}, {
				id: 26,
				name: "王庄村",
				pid: 18
			}, {
				id: 27,
				name: "李庄村",
				pid: 18
			}, {
				id: 28,
				name: "和庄村",
				pid: 18
			}];

			// 递归函数构建树结构
			function buildTree(arr, pid) {
				let result = [];
				for (let i = 0; i < arr.length; i++) {
					if (arr[i].pid === pid) {
						let children = buildTree(arr, arr[i].id);
						if (children.length) {
							arr[i].children = children;
						}
						result.push(arr[i]);
					}
				}
				return result;
			}
			// 构建树结构
			let tree = buildTree(arr, 0);
			console.log(tree);
		</script>
	</body>
</html>

请大家看完之后给我点个关注,谢谢您了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis常用设计模式

Redis常用的设计模式分为读&#xff0c;写&#xff0c;读写三种 一、概要说明 读操作 Read Through Pattern 读穿透 写操作 以Redis统一视图为准&#xff1a;先更新缓存&#xff0c;后更新数据库。 Write Through Pattern 直写模式&#xff08;首先将数据写入缓存&#xf…

github删除某个仓库

在GitHub上删除一个仓库&#xff0c;按照以下步骤操作&#xff1a; 1、登录到GitHub账户。 2、导航到想要删除的仓库页面。 3、点击仓库页面上的"Settings"&#xff08;设置&#xff09;选项卡。 4、向下滚动到页面底部&#xff0c;找到"Danger Zone"&…

数字证书-USBKey使用指导

在商用密码应用安全性评估&#xff08;密评&#xff09;场景下&#xff0c;您可以通过数字证书管理服务控制台申请带有私钥的合规CA证书。只有在安装了USBKey控件并将USBKey插入本地操作系统后&#xff0c;才能选择本地密钥容器来申请合规CA证书。本文介绍如何安装和使用USBKey…

10_JavaWeb过滤器

文章目录 过滤器1.过滤器的实现1.1 实现过滤器1.2 配置过滤器1.2.1 过滤器的xml方式1.2.2 过滤器的注解方式 2. 过滤器的生命周期3. 过滤器链使用 过滤器 生活举例: 公司前台,停车场安保,地铁验票闸机 java中过滤仅仅是对请求做出过滤 客户端向服务器发出请求&#xff0c;在服…

使用 Hugging Face 推理终端搭建强大的“语音识别 + 说话人分割 + 投机解码”工作流...

Whisper 是当前最先进的开源语音识别模型之一&#xff0c;毫无疑问&#xff0c;也是应用最广泛的模型。如果你想部署 Whisper 模型&#xff0c;Hugging Face推理终端能够让你开箱即用地轻松部署任何 Whisper 模型。但是&#xff0c;如果你还想叠加其它功能&#xff0c;如用于分…

0531作业 链表

结果 整体代码 主要实现 /**实现* */ #include "./linklist.h"linklist* create_linklist(datatype param){linklist* node(linklist*)malloc(sizeof(linklist));if(NULLnode){puts("节点创建失败");}node->paramparam;node->pnextNULL;puts("…

每天CTF小练--ctfshow新手村

easy_base 密文&#xff1a;0XezFWZfNXafRjNlNXYit3dvh2cmR3Y 等号在前面&#xff0c;直接倒序后解码 ctfshow{base64_is_easy} 代码解&#xff1a; s 0XezFWZfNXafRjNlNXYit3dvh2cmR3Y print(s[::-1]) #翻转字符串 print(s[::-1]) #翻转字符串 print(s[::-1]) #翻转…

运放应用2 - 同相放大电路

1. 前置知识 同相放大电路存在 负反馈电路 &#xff0c;工作在线性区&#xff0c;可以利用 虚短 概念来分析电路。 注&#xff1a;运放的 虚断 特性是一直存在的&#xff0c;虚短 特性则需要运放工作在 线性区 有关运放的基础知识&#xff0c;可以参考我的另外一篇文章&#x…

【深度学习】目标检测,Faster-RCNN算法训练,使用mmdetection训练

文章目录 资料环境数据测试 资料 https://mmdetection.readthedocs.io/zh-cn/latest/user_guides/config.html 环境 Dockerfile ARG PYTORCH"1.9.0" ARG CUDA"11.1" ARG CUDNN"8"FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}…

掘金AI商战宝典-系统班:2024掘金AIGC课程(30节视频课)

课程下载&#xff1a;掘金AI商战宝典-系统班&#xff1a;2024掘金AIGC课程(30节视频课)-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程目录 1-第一讲学会向Al提问&#xff1a;万能提问公式_1.mp4 2-第二讲用AI写视频脚本_1.mp4 3-第三讲…

教科书般的充电桩平台多租户技术架构设计,建议收藏!-慧哥充电桩开源平台

慧哥充电桩开源平台V2.5.2_----- SpringCloud 汽车 电动自行车 云快充1.5、云快充1.6 https://liwenhui.blog.csdn.net/article/details/134773779?spm1001.2014.3001.5502 一、多租户的概念 多租户本质上是一种软件的技术架构&#xff0c;它最核心的特征是多个租户可以共享一…

Mamba v2诞生:1 儒(Transformers)释(SSD)道(Mamba)本是一家?!

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

基于MinGW64 GCC编译Windows平台上的 libuvc

安装cmake 打开cmake官网 https://cmake.org/download/&#xff0c;下载安装包&#xff1a; 安装时选择将cmake加到系统环境变量里。安装完成后在新的CMD命令窗口执行cmake --version可看到输出&#xff1a; D:\>cmake --version cmake version 3.29.3 CMake suite mainta…

Hotcoin精彩亮相Consensus 2024 Austin,探索行业风向标

5 月 31 日&#xff0c;由CoinDesk主办的“Consensus 2024”大会在德克萨斯州的奥斯汀市正式落下帷幕。作为全球规模最大、最具影响力的加密货币、区块链、Web3盛会&#xff0c;本次Consensus 2024 Austin吸引来自 100 多个国家/地区的 15,000 多名与会者、6,800 家公司、850 多…

LeetCode-2246. 相邻字符不同的最长路径【树 深度优先搜索 图 拓扑排序 数组 字符串】

LeetCode-2246. 相邻字符不同的最长路径【树 深度优先搜索 图 拓扑排序 数组 字符串】 题目描述&#xff1a;解题思路一&#xff1a;找路径背诵版&#xff1a;解题思路三&#xff1a; 题目描述&#xff1a; 给你一棵 树&#xff08;即一个连通、无向、无环图&#xff09;&…

python中实现队列功能

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 python中实现队列功能 选择题 以下代码最后一次输出的结果是&#xff1f; from collections import deque queue deque() queue.append(1) queue.append(2) queue.append(3) print(【显示】…

Nginx 配置:gzip动态压缩、静态压缩

动态压缩 动态压缩开启的现象 Nginx配置 http {# 启用 gzip 压缩gzip on;# 设置 gzip 压缩级别&#xff0c;范围是1-9&#xff0c;数字越大压缩率越高但CPU消耗也越大gzip_comp_level 5;# 设置最低压缩的文件大小&#xff08;大于1KB的文件才进行压缩&#xff09;gzip_min_le…

【Linux进程篇】Linux进程管理应用——虚假的shell脚本

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;我们已经了解了进程的工作原理&#xff0c;并且学习了进程创建、进程终止、进程等待以及进程程序替换。为了更好的巩固这些知识&#xff0c;我们可以创建一个简易的shell命令行。 目录 做一个简易的s…

【DevOps】网站安全案例分析:真实事件中的经验与教训

目录 一、常见的网站安全事故案例 1. Equifax 数据泄露事件&#xff08;2017年&#xff09; 2. WannaCry 勒索软件攻击事件&#xff08;2017年&#xff09; 3. GitHub DDoS 攻击事件&#xff08;2018年&#xff09; 二、网站安全事件的一般分析方法 1、事件背景调查 2、…

09-spring的bean创建流程(一)

文章目录 spring中bean的创建流程finishBeanFactoryInitialization(beanFactory)beanFactory.preInstantiateSingletons();getMergedLocalBeanDefinition(beanName);流程实现FactoryBean接口,里面的对象实例化过程 spring中bean的创建流程 finishBeanFactoryInitialization(be…