叉树先序遍历问题,如何取得每一个数据所在的层数?
我有一个数组对象:
let treeObj = {
'1': [
{ '2': [{ '5': [{ '11': '11' }, { '12': '12' }, { '13': '13' }, { '14': '14' }] }] },
{ '3': [{ '6': '6' }, { '7': '7' }] },
{ '4': [{ '8': '8' }, { '9': '9' }, { '10': '10' }] }
]
}
通过先序遍历
的方法,我能够按顺序取得所有的key
值:
let traverseNode = (node) => {
if (typeof node !== 'string') {
let key = Object.keys(node)
console.log(key)
for (let i = 0; i < node[key].length; i++) {
traverseNode(node[key][i])
}
}
}
traverseNode(treeObj)
/* 输出结果如下
[ '1' ]
[ '2' ]
[ '5' ]
[ '11' ]
[ '12' ]
[ '13' ]
[ '14' ]
[ '3' ]
[ '6' ]
[ '7' ]
[ '4' ]
[ '8' ]
[ '9' ]
[ '10' ]
*/
现在我想知道每一个key
值所在的层数
,比如['1']
在第1层,[ '2' ][ '3' ][ '4' ]
在第2层,请问应该怎么做呢?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
加个标志就OK了
您看这样可以不
---分割线---
之前明显得错误,(自己掌嘴)
这样输出应该是符合题主意思的
可以给
traverseNode
函数加个参数表示层级把深度也当作参数传进去就行了