dom树的广度优先遍历

作者: 千茉紫依 | 来源:发表于2019-04-09 20:17 被阅读0次

有时候对dom树要逐层进行处理,这时就要用到广度优先遍历。思路是对所有的父节点进行遍历,将他们的子节点全部保存进一个数组当中,对数组处理完毕后,递归调用数组。
例如要找出每层子节点最多的节点返回,可以这样写:

const findMostCount = dom => {
            let r = [];
            const find = domArr => {
                let children = [];
                let most = 0;
                domArr.forEach((item, idx) => {
                 if (item.childElementCount > most) 
                       most = item.childElementCount;
                 children.push(...item.children);
                });
                r.push(most);
                if (children.length) find(children);
            };
            find([dom]);
            return r;
        };

将每一层看做一个数组,然后逐层进行遍历,将children取出保存,同时取出子节点数最多的节点,当子节点数组不为空时,递归调用。

相关文章

  • 前端常见面试题目(六)

    一、介绍下深度优先遍历和广度优先遍历,如何实现 通过用深度优先遍历和广度优先遍历对这个dom树进行查找来理解1、 ...

  • dom树的广度优先遍历

    有时候对dom树要逐层进行处理,这时就要用到广度优先遍历。思路是对所有的父节点进行遍历,将他们的子节点全部保存进一...

  • 多级树的深度优先遍历与广度优先遍历(Java实现)

    多级树的深度优先遍历与广度优先遍历(Java实现) 深度优先遍历与广度优先遍历其实是属于图算法的一种,多级树可以看...

  • 5,DFS、BFS

    引用数据结构二叉树的概念:深度优先搜索类似前序遍历、广度优先搜索类似层次遍历 用遍历DOM为例来说明:深度的核心代...

  • 二叉树遍历

    二叉树的遍历,分为深度优先遍历和广度优先遍历,其中深度优先遍历又分为有前序、中序、后序遍历,广度优先遍历就是按层遍...

  • 11.图的广度优先遍历与无权图的最短路径

    图的广度优先遍历与无权图的最短路径 点击这里,前提知晓... 一、图的广度优先遍历 和树的广度优先遍历的思想一样,...

  • 5. 深度优先、广度优先

    1. 二叉树的深度优先遍历和广度优先遍历2. 深度优先搜索递归和非递归实现 深度优先(DFS):前序遍历 广度优先...

  • jsoup:遍历一棵树

    深度优先遍历 dom 树

  • DOM树遍历--BFS和DFS

    数据结构中,树或图有两种遍历方法,BFS--广度优先搜索、DFS--深度优先搜索。 DOM树也是一种树的实现。 如...

  • 深度优先遍历相当于树的前序遍历,递归思想 广度优先遍历相当于树的层序遍历,队列思想

网友评论

    本文标题:dom树的广度优先遍历

    本文链接:https://www.haomeiwen.com/subject/mbtwiqtx.html