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