需求:在页面某个dom节点中遍历,找到目标dom节点,我们正常做法是利用选择器document.getElementById(),document.getElementsByName()或者document.getElementsByTagName(),但在本文,我们从算法的角度去查找dom节点,同时理解一下广度优先遍历(BFS)的原理。
- 题目描述:给定一个父节点,使用BFS遍历返回所有节点
- 题目难度:⭐⭐
//BFS
function bfs(node){
let res = [];
let queue = [];//利用队列
if(node){
queue.push(node); //先存入父节点
while(queue.length){
let item = queue.shift();
res.push(item);
let children = item.children;
for(let i=0;i<children.length;i++){
queue.push(children[i]) //遍历存入子节点
}
}
}
return res
}
console.log(bfs(node_parent))
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。