根据后台数据结构,构建搜索目录树
效果图:

数据源
const data = [{"categoryidf": "761525000288210944","categoryids": "766314364226637824","menunamef": "经济运行","menunames": "经济运行总览","tempname": "南沙区XXXX年XX季度经济运行情况及存在问题","tempid": "787314277060055040","show_orderf": 2,"show_orderss": 1},{"categoryidf": "761525000288210944","categoryids": "766314364226637824","menunamef": "经济运行","menunames": "经济运行总览","tempname": "报告模板","tempid": "805483785230618624","show_orderf": 2,"show_orderss": 1},{"categoryidf": "761525000288210944","categoryids": "766314364226637824","menunamef": "经济运行","menunames": "经济运行总览","tempname": "南沙区经济运行分析报告-开发中勿删","tempid": "766692223369744384","show_orderf": 2,"show_orderss": 1},{"categoryidf": "761560904969097216","categoryids": "787329448503545856","menunamef": "宏观经济","menunames": "地区生产总值","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 1},{"categoryidf": "761560904969097216","categoryids": "787329962872016896","menunamef": "宏观经济","menunames": "行业总览","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 2},{"categoryidf": "761560904969097216","categoryids": "787330410567831552","menunamef": "宏观经济","menunames": "工业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 3},{"categoryidf": "761560904969097216","categoryids": "787330779163267072","menunamef": "宏观经济","menunames": "商贸业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 4},{"categoryidf": "761560904969097216","categoryids": "787331288074948608","menunamef": "宏观经济","menunames": "服务业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 5},{"categoryidf": "761560904969097216","categoryids": "787331500218650624","menunamef": "宏观经济","menunames": "房地产开发业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 6},{"categoryidf": "761560904969097216","categoryids": "787331766636646400","menunamef": "宏观经济","menunames": "建筑业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 7},{"categoryidf": "761560904969097216","categoryids": "787332016487141376","menunamef": "宏观经济","menunames": "进出口","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 8},{"categoryidf": "761560904969097216","categoryids": "787332232145670144","menunamef": "宏观经济","menunames": "固定资产投资","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 9},{"categoryidf": "761560904969097216","categoryids": "787332439809855488","menunamef": "宏观经济","menunames": "派生产业","tempname": null,"tempid": null,"show_orderf": 3,"show_orderss": 10},{"categoryidf": "767696419078410240","categoryids": null,"menunamef": "营商环境","menunames": null,"tempname": null,"tempid": null,"show_orderf": 4,"show_orderss": 0},{"categoryidf": "763705116242087936","categoryids": null,"menunamef": "数字经济","menunames": null,"tempname": null,"tempid": null,"show_orderf": 5,"show_orderss": 0},{"categoryidf": "763705094125522944","categoryids": "787332966232756224","menunamef": "产业经济","menunames": "产业总览","tempname": null,"tempid": null,"show_orderf": 5,"show_orderss": 1},{"categoryidf": "763705094125522944","categoryids": "807545774656327680","menunamef": "产业经济","menunames": "产业链图谱","tempname": "系列产业研究报告标准版本","tempid": "807546080970543104","show_orderf": 5,"show_orderss": 2},{"categoryidf": "763705094125522944","categoryids": "787333327861452800","menunamef": "产业经济","menunames": "人才和创新资源","tempname": null,"tempid": null,"show_orderf": 5,"show_orderss": 3},{"categoryidf": "767696724260163584","categoryids": null,"menunamef": "企业发展","menunames": null,"tempname": null,"tempid": null,"show_orderf": 6,"show_orderss": 0},{"categoryidf": "767696857580310528","categoryids": "777906003562860544","menunamef": "智慧招商","menunames": "演示","tempname": "南沙区经济运行分析报告-演示使用勿删","tempid": "777906168692609024","show_orderf": 7,"show_orderss": 2},{"categoryidf": "786523422359425024","categoryids": null,"menunamef": "经济韧性评估","menunames": null,"tempname": null,"tempid": null,"show_orderf": 8,"show_orderss": 0}]
转换为树目录结构
// 定义一个函数来构建层级结构
function buildHierarchy(data: any[]): any[]{const hierarchy: any[] = [];const map = new Map<string, any>();console.log('map',map);// 遍历数据,构建 mapdata.forEach(item => {if (!map.has(item.menunamef)) {map.set(item.menunamef, {key:item.categoryidf,label: item.menunamef,children: []});hierarchy.push(map.get(item.menunamef));}if (item.menunames) {const parent = map.get(item.menunamef);if (!parent.children.find(child => child.label === item.menunames)) {parent.children.push({key:item.categoryids,label: item.menunames,children: []});}}if (item.tempname) {const parent = map.get(item.menunamef);const subParent = parent.children.find(child => child.label === item.menunames);if (subParent) {subParent.children.push({label: item.tempname,key: item.tempid});} else {parent.children.push({label: item.tempname,key: item.tempid});}}});return hierarchy;
}const result = buildHierarchy(data);
相关文章:
根据后台数据结构,构建搜索目录树
效果图: 数据源 const data [{"categoryidf": "761525000288210944","categoryids": "766314364226637824","menunamef": "经济运行","menunames": "经济运行总览","tempn…...
食品计算—FoodSAM: Any Food Segmentation
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...
2411rust,1.83
原文 1.83.0稳定版 新的常能力 此版本包括几个说明在常环境中运行代码可干的活的大型扩展.这是指编译器在编译时必须计算的所有代码:常和静项的初值,数组长度,枚举判定值,常模板参数及可从(constfn)此类环境调用的函数. 引用静.当前,除了静项的初化器式外,禁止常环境引用静…...
tomcat加载三方包顺序
共享库 tomcat支持多个webapp共享一个三方库,而不需要每个webapp都引入该三方库 tomcat加载类顺序 bootstrap:加载jvm提供的类system:加载$CATALINA_HOME/bin下的bootstrap.jar,commons-daemon.jar,tomcat-juli.jar三个包//加载$CLASSPATH…...
计算机的错误计算(一百七十一)
摘要 探讨 MATLAB 中秦九韶(Horner)多项式的错误计算。 例1. 用秦九韶(Horner)算法计算(一百零七)例1中多项式 直接贴图吧: 这样,MATLAB 给出的仍然是错误结果,因为准…...
js对于json的序列化、反序列化有哪几种方法
在JavaScript中,对JSON(JavaScript Object Notation)进行序列化(将对象转换为JSON字符串)和反序列化(将JSON字符串转换为对象)是常见的操作。以下是一些常用的方法: 序列化…...
Linux——基础命令(2) 文件内容操作
目录 编辑 文件内容操作 1.Vim (1)移动光标 (2)复制 (3)剪切 (4)删除 (5)粘贴 (6)替换,撤销,查找 (7ÿ…...
简单搭建qiankun的主应用和子应用并且用Docker进行服务器部署
在node18环境下,用react18创建qiankun主应用和两个子应用,react路由用V6版本,都在/main路由下访问子应用,用Dockerfile部署到腾讯云CentOS7.6服务器的8000端口进行访问,且在部署过程中进行nginx配置以进行合理的路由访…...
Python知识分享第十六天
“”" 故事7: 小明把煎饼果子技术传给徒弟的同时, 不想把独创配方传给他, 我们就要加私有. 问: 既然不想让子类用, 为什么要加私有? 答: 私有的目的不是不让子类用, 而是不让子类直接用, 而必须通过特定的 途径或者方式才能使用. 大白话: ATM机为啥要设计那么繁琐, 直接…...
管家婆财贸ERP BR045.大类存货库存数量明细表
最低适用版本: C系列 23.8 插件简要功能说明: 库存数量明细表支持按存货展示数据更多细节描述见下方详细文档 插件操作视频: 进销存类定制插件--大类存货库存数量明细表 插件详细功能文档: 应用中心增加菜单【大类存货库存数…...
Pytorch-GPU版本离线安装
最近在复现一项深度学习的工作,发现自己的pytorch是装的cpu版的(好像当时是直接加清华源,默认是cpu版本)。从官网在线下载速度太慢,还时不时断开连接,我们可以配置conda的清华源去这个问题,但是考虑到是在用…...
k8s 1.28 二进制安装与部署
第一步 :配置Linux服务器 #借助梯子工具 192.168.196.100 1C8G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubectl、haproxy、keepalived 192.168.196.101 1C8G kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubectl、…...
【C语言】扫雷游戏(一)
我们先设计一个简单的9*9棋盘并有10个雷的扫雷游戏。 1,可以用数组存放,如果有雷就用1表示,没雷就用0表示。 2,排查(2,5)这个坐标时,我们访问周围的⼀圈8个位置黄色统计周围雷的个数是1。排查(8,6)这个坐标时…...
二分法篇——于上下边界的扭转压缩间,窥见正解辉映之光(1)
前言 二分法,这一看似简单却又充满哲理的算法,犹如一道精巧的数学之门,带领我们在问题的迷雾中找到清晰的道路。它的名字虽简单,却深藏着智慧的光辉。在科学的浩瀚星空中,二分法如一颗璀璨的星辰,指引着我们…...
# 01_Python基础到实战一飞冲天(三)--python面向对象(一)--简单类
01_Python基础到实战一飞冲天(三)–python面向对象(一)–简单类 一、面向对象-01-基本概念 1、面向对象(OOP) 面向对象编程 —— Object Oriented Programming 简写 OOP。 2、面向对象(OOP) 学习目标 了解 面向对象 基本概念…...
sentinel使用手册
1.引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>2.yaml spring:cloud:sentinel:transport:dashboard: localhost:8090 #sentinel控制台地址…...
搜索二维矩阵 II(java)
题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 代码思路: 用暴力算法: class Solution {public boolean searchMatrix(…...
Python语法基础(四)
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 高阶函数之map 高阶函数就是说,A函数作为B函数的参数,B函数就是高阶函数 map:映射 map(func,iterable) 这个是map的基本语法,…...
03_Django视图
三、Django模板 模板Templates 在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具 模板的设计方式实现了我们MVT中VT的解耦(M:Model,V:View,T:Template),VT有着N:M的关系,一个V可以调用任意T…...
如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件
如何从 Hugging Face 数据集中随机采样数据并保存为新的 Arrow 文件 在使用 Hugging Face 的数据集进行模型训练时,有时我们并不需要整个数据集,尤其是当数据集非常大时。为了节省存储空间和提高训练效率,我们可以从数据集中随机采样一部分数…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
