首页 > 其他分享 >获取所有的叶子节点

获取所有的叶子节点

时间:2024-07-01 15:53:35浏览次数:1  
标签:node traverse childrenProp tree 叶子 获取 节点

获取所有的叶子节点
/**
 * 获取叶子节点
 * @param tree
 * @param options
 * @returns {*[]}
 */
export function getLeafNodes(tree, options = {}) {
	const { childrenProp = 'children' } = options // 默认子节点属性名为 'children'

	const leafNodes = []

	function traverse(nodes) {
		nodes.forEach(node => {
			if (node[childrenProp] && node[childrenProp].length > 0) {
				// 如果节点有子节点,递归遍历子节点

				traverse(node[childrenProp])
			} else {
				// 如果没有子节点,该节点是叶子节点,添加到结果数组中

				leafNodes.push(node)
			}
		})
	}

	// 开始遍历树

	traverse(tree)

	// 返回叶子节点数组

	return leafNodes
}

 

标签:node,traverse,childrenProp,tree,叶子,获取,节点
From: https://www.cnblogs.com/yeminglong/p/18278213

相关文章

  • 根据时区获取当地时间
    时区列表publicstaticStringgetTimeByZoneID(StringzoneID){Stringformatted=null;if(ZoneId.getAvailableZoneIds().contains(zoneID)){ZoneIdzoneId=ZoneId.of(zoneID);ZonedDateTimenow=ZonedDateTime.now(zoneId);Date......
  • clickhouse集群及单节点库表占用存储
    1、单节点查询库表存储占用‘system’:库名SELECT  databaseAS`库名`,  tableAS`表名`,  sum(rows)AS`总行数`,  formatReadableSize(sum(data_uncompressed_bytes))AS`原始大小`,  formatReadableSize(sum(data_compressed_bytes))AS`压......
  • php 获取微信用户的openId
    //这里的code是通过前端页面获取的//$appid="公众号在微信的appid";//$secret="公众号在微信的appsecret";publicfunctionuserOpenId($appid,$secret,$code){$url="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$secret&......
  • 一键进阶ComfyUI!懂AI的设计师现在都在用的节点式Stable Diffusion!内附安装包
    大家好,我是设计师阿威目前使用StableDiffusion进行创作的工具主要有两个:WebUI和ComfyUI。而更晚出现的ComfyUI凭借超高的可定制性和复现性迅速火遍全球。有设计师表示SD发布了XL1.0后,ComfyUI用它优秀的底层逻辑率先打击了臃肿不稳定的WebUI1.6,成为更适合“体验”XL的......
  • 高效获取网站cookie
    获取网站cookie_chrome插件推荐安装chrome插件EditThisCookiehttps://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg设置插件导出格式为:“分号分隔键值对”登录某个网站gotohttps://music.163.com/#使用EditThisCooki......
  • C++使用typeid获取类型信息type_info机制解析
    目录一.环境二.基础用法三.编译期计算还是运行时计算1.实验一2.实验二3.实验三四.用法展示五.其他这篇文章讨论一下C++中typeid以及type_info的用法。一.环境windows11,VS2022二.基础用法1.需要明确一下typeid是操作符,不是函数,就像sizeof。2.typeid的操作对象可......
  • 小程序获取当前页面栈及应用
    前言:小程序跳转路由,会在页面栈里留下记录的,有的时候,我们就可以利用页面栈的记录来做一些便捷的操作。获取当前页面栈:varpages=getCurrentPages();console.log('pages',pages)console.log('pagesLength',pages.length)官网地址:getCurrentPages()|uni-app官网 应用:......
  • JDBC中的元数据是什么?如何获取?
    JDBC中的元数据(MetaData)是关于数据的数据,它描述了数据库的结构、表的结构、列的数据类型、存储过程、支持的SQL语法和数据库产品的版本等信息。元数据在JDBC中主要通过DatabaseMetaData和ResultSetMetaData两个接口来获取。1.DatabaseMetaDataDatabaseMetaData接口提供了关......
  • CSDN积分获取攻略:快速积累积分的小技巧
    下载积分攻略 1、每发布一篇原创或者翻译文章:可获得10分 2、每发布一篇转载文章:可获得2分 3、博主的文章每被评论一次:可获得1分 4、每发表一次评论:可获得1分(自己给自己评论、博主回复别人对自己博文的评论不获得积分) 5、每篇博文阅读次数每超过100次:可获得1分,阅读加......
  • 如何在 Logback 和 Log4j 中获取日志:一个开发者指南
    日志记录是软件开发中的关键实践,它帮助我们监控应用程序的行为,定位问题并优化性能。在Java生态系统中,Logback和Log4j是两个广泛使用的日志框架,它们都基于SLF4JAPI提供日志服务。本文将指导你如何在这两个框架中获取日志,并展示它们的使用差异。简介无论是Logback......