console.log('深度');
function d(e) {
console.log(e);
const ren = e.children;
// 如果是二叉树,则
// const ren =[e.left,e.right].filter(ei=>!!ei);
if (ren.length) {
Array.from(ren).forEach(e => d(e));
}
}
d(document.body);
console.log('广度');
function g(e) {
let arr = [];
arr.push(e);
while (arr.length) {
const one = arr.shift();
console.log(one);
const ren = one.children;
// 如果是二叉树,则
// const ren =[one.left,one.right].filter(e=>!!e);
arr = [...arr, ...ren];
}
}
g(document.body);
// 求深度是多少
function depth(ele) {
if (!ele) {
return 0; // 这个可以不要
}
const ren = ele.children;
// 如果是二叉树
// const ren =[ele.left, ele.right].filter(e=>!!e);
let zishugaodus = Array.from(ren).map(e => depth(e));
console.log('zishugaodus', zishugaodus);
return Math.max(0, ...zishugaodus) + 1;
// 之所以前面加个0,是因为:
// Math.max(...[]);
// -Infinity
}
console.log('depth', depth(document.body));
javascript深度广度遍历DOM及二叉树以及求深度
最新推荐文章于 2022-03-23 13:12:00 发布