题目
求DOM树的节点的最大深度
实现
可以用递归实现,关键就是找出递归的公式:
1 + (兄弟节点中深度最大值)
然后找出递归的结束条件,即当不存在子节点时结束递归,返回1
其次还要注意,DOM节点的children
属性是一个类数组对象,类似函数的arguments
属性,不能直接使用数组方法,需要先转换为数组
const getDepth = node => {
if (!node.children || node.children.length === 0) {
return 1;
}
const maxChildrenDepth = [...node.children].map(v => getDepth(v));
return 1 + Math.max(...maxChildrenDepth)
};
const body = document.querySelector('body')
console.log(getDepth(body))
思路还是需要练习啊