合作联系微信: w6668263      合作联系电话:177-9238-7426     

获取所有的叶子节点

获取所有的叶子节点
/**
 * 获取叶子节点
 * @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
}

 

posted on   草率的龙果果  阅读(49)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示