当前位置: 首页 > article >正文

树结构,转换

type TreeNode {children?: TreeNode[][key: string]: any}/*** 给树结构补充 canSelect 字段* 规则* 1. 当前级别 3可选* 2. 当前级别 3但没有子节点也可选* 3. 其他不可选** param tree 树数据* param level 起始层级默认从 1 开始* returns 新树*/export function setTreeCanSelectT extends TreeNode(tree: T[],level 1): ArrayT { canSelect: boolean } {if (!Array.isArray(tree)) return []return tree.map((node) {const children Array.isArray(node.children) ? node.children : []const hasChildren children.length 0const canSelect level 3 || !hasChildrenreturn {...node,canSelect,children: hasChildren? setTreeCanSelect(children, level 1): []}})}取值type TreeNode {label: stringvalue: string | numberchildren?: TreeNode[][key: string]: any}/*** 树拍平*/function flattenTree(tree: TreeNode[]): TreeNode[] {const result: TreeNode[] []const dfs (nodes: TreeNode[]) {nodes.forEach((node) {result.push(node)if (node.children node.children.length) {dfs(node.children)}})}dfs(tree)return result}/*** 根据 valueList 获取节点对象列表*/export function getNodesByValues(tree: TreeNode[],valueList: Arraystring | number): TreeNode[] {if (!Array.isArray(tree) || !Array.isArray(valueList)) return []const flatList flattenTree(tree)const valueSet new Set(valueList)return flatList.filter((node) valueSet.has(node.value))}

相关文章:

树结构,转换

type TreeNode {children?: TreeNode[][key: string]: any }/*** 给树结构补充 canSelect 字段* 规则&#xff1a;* 1. 当前级别 > 3&#xff0c;可选* 2. 当前级别 < 3&#xff0c;但没有子节点&#xff0c;也可选* 3. 其他不可选** param tree 树数据* param level 起…...

Office自定义界面编辑器终极指南:免费打造专属Office功能区

Office自定义界面编辑器终极指南&#xff1a;免费打造专属Office功能区 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/of/office-custom-ui-editor …...

半导体行业考研择业参考:一篇写给电子信息学子的行业笔记

这是一篇基于公开资料整理的学习笔记&#xff0c;帮助准备考研或刚入行的同学了解半导体/集成电路方向的基本情况。所有数据仅供参考&#xff0c;请以官方渠道为准。一、为什么关注半导体方向&#xff1f; 最近几年&#xff0c;"芯片"这个词频繁出现在新闻里。从手机…...

Spring Boot 3.2.3项目里,用Knife4j 4.4.0给API文档加点‘料’(附JDK 17避坑点)

Spring Boot 3.2.3项目实战&#xff1a;用Knife4j 4.4.0打造专业级API文档&#xff08;含JDK 17适配指南&#xff09; 在微服务架构盛行的今天&#xff0c;API文档的质量直接影响着开发效率与协作体验。当我们将项目升级到Spring Boot 3.2.3和JDK 17这一前沿技术栈时&#xff0…...

一念成仙 攻略 核心地图移动与高级传送技巧完全指南

在众多文字修仙爱好者寻找优质玩法体验时&#xff0c;一念成仙凭借其庞大且真实的地图交互系统脱颖而出。为了帮助新手与进阶玩家在广袤的修仙世界中高效跑图&#xff0c;本篇一念成仙 攻略将结合深度的实际游玩经验&#xff0c;为您提供最专业、最可靠的地图移动与传送系统解析…...

从Postman到Kibana:一文搞懂Elasticsearch REST API的增删改查与高级查询

从Postman到Kibana&#xff1a;一文搞懂Elasticsearch REST API的增删改查与高级查询 在数据驱动的现代应用开发中&#xff0c;Elasticsearch已成为处理海量搜索和分析需求的首选引擎。但对于开发者而言&#xff0c;仅仅理解其核心概念远远不够——真正影响开发效率的&#xff…...

思源黑体TTF构建工具:从零到一打造专业多语言字体家族

思源黑体TTF构建工具&#xff1a;从零到一打造专业多语言字体家族 【免费下载链接】source-han-sans-ttf A (hinted!) version of Source Han Sans 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans-ttf 思源黑体TTF构建工具是一个专业级的字体构建系统&am…...

抖音视频批量下载终极指南:douyin-downloader完整使用教程

抖音视频批量下载终极指南&#xff1a;douyin-downloader完整使用教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

别再只用思维导图了!用JSMind 0.5 + Vue3 打造一个带状态流转的流程图(附完整源码)

用JSMind 0.5 Vue3构建状态流程图&#xff1a;轻量级解决方案实战 在Vue3项目中实现流程图功能时&#xff0c;开发者常面临两难选择&#xff1a;要么引入GoJS这类重型库导致项目臃肿&#xff0c;要么自行开发耗费大量时间。JSMind作为一款轻量级思维导图库&#xff0c;通过灵活…...

FPGA DDR3读写性能优化实战:基于MIG IP与AXI4总线的FIFO缓存设计

FPGA DDR3读写性能优化实战&#xff1a;基于MIG IP与AXI4总线的FIFO缓存设计 在高速数据采集和实时图像处理系统中&#xff0c;DDR3内存控制器设计一直是FPGA开发者面临的核心挑战。当数据吞吐量达到GB/s级别时&#xff0c;如何通过合理的FIFO缓存设计和AXI4总线优化来突破性能…...

别再为GEOS编译踩坑了!手把手教你用CMake搞定GEOS 3.7.5(附GeometryFactory.h源码修改指南)

从零构建GEOS 3.7.5&#xff1a;Windows平台编译实战与核心功能解析 在GIS开发领域&#xff0c;GEOS库作为处理空间几何关系的核心引擎&#xff0c;其重要性不言而喻。然而对于许多Windows平台的C开发者而言&#xff0c;从源码编译GEOS却成为了一道令人望而生畏的技术门槛。本文…...

如何免费解锁八大网盘满速下载:LinkSwift网盘助手完整指南

如何免费解锁八大网盘满速下载&#xff1a;LinkSwift网盘助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / …...

从视频拼接屏到雷达信号处理:拆解AXI4-Stream Switch在真实项目里的两种高阶用法

从视频拼接屏到雷达信号处理&#xff1a;AXI4-Stream Switch的两种高阶实战解析 在FPGA系统设计中&#xff0c;数据流的高效调度往往成为性能瓶颈的关键突破点。想象一下&#xff0c;当16路4K视频流需要实时分配到8个显示终端&#xff0c;或者32通道雷达回波数据要动态分配给4个…...

Pixel Aurora Engine一文详解:开源AI绘图工具的像素化技术实现路径

Pixel Aurora Engine一文详解&#xff1a;开源AI绘图工具的像素化技术实现路径 1. 像素艺术与AI的完美结合 Pixel Aurora Engine&#xff08;像素极光引擎&#xff09;是一款将现代AI技术与复古像素艺术完美融合的开源绘图工具。它基于先进的扩散模型&#xff08;Diffusion M…...

如何让微信聊天记录成为你的永久数字记忆?WeChatMsg完全指南

如何让微信聊天记录成为你的永久数字记忆&#xff1f;WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…...

机器学习数据准备七日速成:从清洗到特征工程实战

1. 机器学习数据准备七日速成指南刚入行时我总纳闷&#xff1a;为什么同样的算法别人跑得比我准&#xff1f;直到有次review同事代码才发现&#xff0c;人家在数据准备环节花了80%的时间。这就像做菜&#xff0c;食材处理才是真正的功夫活。今天我们就用七天时间&#xff0c;手…...

m4s-converter终极指南:3分钟解锁B站缓存视频,实现格式自由!

m4s-converter终极指南&#xff1a;3分钟解锁B站缓存视频&#xff0c;实现格式自由&#xff01; 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter …...

让聊天记忆永存:打造你的专属数字对话档案馆

让聊天记忆永存&#xff1a;打造你的专属数字对话档案馆 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

嵌入式项目数据存储的“后悔药”:Cypress FM25CL64B铁电存储器防丢数据实战指南

嵌入式系统数据安全的终极防线&#xff1a;FM25CL64B铁电存储器深度应用指南 在工业自动化设备突然断电的瞬间&#xff0c;设备参数能否完好保存&#xff1f;当医疗仪器遭遇意外重启&#xff0c;关键校准数据是否会丢失&#xff1f;这些场景正是嵌入式工程师们最不愿面对的噩梦…...

2026年必知!千川数据报表究竟该怎么看?

痛点深度剖析我们团队在实践中发现&#xff0c;众多企业在使用千川数据报表时面临诸多困境。一方面&#xff0c;数据维度繁杂&#xff0c;包含流量、转化、销售等多方面数据&#xff0c;企业难以快速准确地从中提取关键信息&#xff0c;如不同渠道流量的转化率、不同商品的销售…...

各垃圾回收器工作原理详解

Java虚拟机&#xff08;JVM&#xff09;提供了多种垃圾回收器&#xff0c;每种都有其独特的工作原理、适用场景和性能特点。以下是主流垃圾回收器的详细解析。 1. Serial / Serial Old 收集器 Serial 和 Serial Old 是历史最悠久的收集器&#xff0c;分别用于新生代和老年代&…...

深度学习在计算机视觉中的九大应用场景与技术解析

1. 计算机视觉中的深度学习应用全景计算机视觉作为人工智能领域最活跃的分支之一&#xff0c;正经历着由深度学习技术驱动的革命性变革。从智能手机的人脸解锁到自动驾驶的环境感知&#xff0c;深度学习模型通过端到端的学习方式&#xff0c;正在重塑我们处理视觉信息的基础范式…...

B站视频下载终极指南:轻松保存大会员4K高清内容

B站视频下载终极指南&#xff1a;轻松保存大会员4K高清内容 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法离线观看B站精彩…...

RH850中断配置避坑指南:从TAUB定时器到CAN通信,手把手教你搞定寄存器设置

RH850中断配置实战&#xff1a;从TAUB定时器到CAN通信的寄存器避坑手册 在汽车电子和工业控制领域&#xff0c;RH850系列微控制器凭借其高可靠性和丰富的外设资源成为主流选择。但许多工程师在中断配置环节频频踩坑——我曾亲眼见过一个团队因为TAUB定时器中断标志未清除&#…...

保姆级教程:Hashcat掩码攻击破解5位数字iPhone备份密码(附Manifest.plist哈希提取全攻略)

5位数字iPhone备份密码破解实战&#xff1a;从哈希提取到掩码攻击全解析 在移动设备安全领域&#xff0c;iPhone备份密码的恢复一直是个高频需求。无论是安全研究人员进行取证分析&#xff0c;还是普通用户遗忘密码后的数据自救&#xff0c;掌握高效的密码破解技术都至关重要。…...

把Snort当“网络监控摄像头”:5分钟教你用嗅探模式分析本地网络流量(Windows实操)

用Snort打造你的网络流量监控台&#xff1a;Windows实战指南 每次看到网络监控设备上闪烁的指示灯&#xff0c;总让我想起城市路口的交通摄像头——它们无声地记录着每一辆车的通行状态。而在数字世界里&#xff0c;Snort就是这样一个"网络监控摄像头"&#xff0c;它…...

重庆数据备份公司排行榜单

数据备份行业&#xff1a;技术挑战与本地化解决方案的崛起行业痛点分析当前&#xff0c;数据备份领域正面临前所未有的技术挑战。随着数据量呈指数级增长&#xff0c;传统备份方案在效率、成本和安全性上的短板日益凸显。首先&#xff0c;海量非结构化数据的涌现使得备份窗口被…...

企业在线考试系统哪个好?企业真正关心的其实不是“便宜”,而是“能不能落地”

现在很多企业都在做数字化培训&#xff0c;也都想通过考试来检验学习效果。可一旦真正开始选系统&#xff0c;问题就来了。网上看了一圈&#xff0c;很多平台看起来功能不少&#xff0c;但真正用到企业内部时&#xff0c;就会发现并没有想象中那么顺手。有的系统适合学校&#…...

5步构建个性化数据可视化仪表盘:开源工具集成实战指南

5步构建个性化数据可视化仪表盘&#xff1a;开源工具集成实战指南 【免费下载链接】tiled Flexible level editor 项目地址: https://gitcode.com/gh_mirrors/ti/tiled 在当今数据驱动的时代&#xff0c;如何快速构建一个功能强大、美观实用的数据可视化仪表盘成为开发者…...

我APP的核心功能还不稳定-----没有给倒计时添加系统闹钟

这在经典闹钟里面已经实现了&#xff0c;但是在计划这个可能更加主要的功能里面居然还没有&#xff0c;导致最近有时候计划没办法被唤醒。现在来完成这个基本功能。 基本功能是最近重要的。...