function bfs(){
let result = []
let root = document.querySelector('body')
let stack = [root]
let temp = []
let len
while(len=stack.length){
for(let i=0;i<len;i++){
let node = stack.shift()
temp.push(node.nodeName)
if(node.children){
for(let j=0;j<node.children.length;j++){
stack.push(node.children[j])
}
}
}
result.push([...temp])
temp.length = 0
}
return result
}
console.log(bfs())
深度优先dfs
1.递归
栈实现
childNodes 和 children的区别:
childNodes: 子节点包括 元素节点 , 文本节点 children: 子节点只包含 元素节点 nodeType:1-元素结点 2-属性结点 3-文本结点