需求:在页面某个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))


鹿角包
175 声望8 粉丝

不苦程序媛