news 2026/4/18 3:40:11

手写:dom深度优先搜索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手写:dom深度优先搜索

DOM 的深度优先搜索,本质就是遍历一棵树:

  • 先访问当前节点
  • 再访问它的子节点

DOM 树天然就是树结构,所以很适合 DFS。


1. 递归版 DFS

这是最直接的写法。

function dfs(node) { if (!node) return; console.log(node); // 访问当前节点 const children = node.children; for (let i = 0; i < children.length; i++) { dfs(children[i]); } }

使用:

dfs(document.body);

2. 如果只想输出标签名

function dfs(node) { if (!node) return; console.log(node.tagName); const children = node.children; for (let i = 0; i < children.length; i++) { dfs(children[i]); } }

3. 迭代版 DFS

如果面试官要求不能用递归,可以用栈来模拟。

写法

function dfs(root) { if (!root) return; const stack
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 3:37:30

全网最细!Maven 编译构建 Java Web 项目从入门到实战一文吃透

使用Maven编译并构建java web项目 一、Maven概述 Maven&#xff0c;是一个专为Java平台设计的项目管理和构建工具。其核心思想在于“约定优于配置&#xff0c;通过提供一套默认的构建和依赖管理规则&#xff0c;降低了项目配置的复杂性&#xff0c;使开发者能够专注于业务逻辑…

作者头像 李华
网站建设 2026/4/18 3:37:29

ArcGIS模型构建器实战:一个模型搞定多个GDB批量转SHP(附避坑技巧)

ArcGIS模型构建器高阶实战&#xff1a;单模型实现多GDB智能转SHP全流程 当面对数十个结构相似的地理数据库需要批量转换时&#xff0c;重复操作不仅效率低下&#xff0c;还容易因人为失误导致数据错位。去年处理某省环保监测项目时&#xff0c;我曾因手动操作导致3个城市的污染…

作者头像 李华
网站建设 2026/4/18 3:33:12

ViVa——基于视频生成模型的机器人RL价值估计:比原先基于VLM的价值函数,能更好的在动态交互环境中对当前进度和未来走势下所带来的回报做估计

前言 近期(26年4月中旬)出差长三角地区&#xff0c;两天四城 昨天衢州(代工厂)、杭州(场景中心)今天南通(变电厂)、上海(本体厂商) 高铁上还完成了对一篇paper的解读。其实&#xff0c;博客中的很多paper&#xff0c;我们都会搞下&#xff0c;把机器人和最前沿具身技术(比如…

作者头像 李华
网站建设 2026/4/18 3:29:20

二叉树的遍历问题和相关算法(思路梳理和代码实现)

在主包的上一篇博客中&#xff0c;我们介绍了堆的相关知识&#xff0c;这篇博客我们便充分补充下二叉树的相关算法问题&#xff0c;普及下常见的遍历方法。正片开始啦&#xff01;发车&#xff01;遍历&#xff08;前序中序后序补充层序遍历 ) 1. 遍历规则 按照规则&#xff0…

作者头像 李华
网站建设 2026/4/18 3:23:23

python commitizen

# 关于Python Commitizen&#xff0c;你可能需要知道这些 在团队协作开发中&#xff0c;代码提交信息的质量常常被忽视&#xff0c;却直接影响项目的可维护性。杂乱无章的提交信息就像没有标签的档案柜&#xff0c;时间一长&#xff0c;谁都说不清某个改动究竟为何发生。Python…

作者头像 李华