在不确定层级关系的情况下 这种数据格式 我怎么能够取到 isLeaf: true
的这个label
值
可以知道它的value
值
这不就是树的遍历吗。。。
简单写个递归就可以了
function getLeafLabel(tree) {
return tree.isLeaf
? tree.label
: getInChildren(tree)
}
function getInChildren(tree) {
let result
tree.children && tree.children.forEach(tree => {
result = result || getLeafLabel(tree)
})
return result
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
1 回答6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
看这个数据,叶节点应该不少。如果不允许非空父节点的话,每个看得见的父节点下至少会有一个叶节点。所以你是要找第一个叶节点呢,还是要找所有叶节点呢?
这里提供一个找所有叶节点的方法,没用递归,用的广度遍历(相关阅读:使用递归遍历并转换树形数据,这里面也讲了广度)。这里采用 ES2015 的 generator 语法实现