快手面试算法真题

按照html中的标签层数遍历节点名。

例如:html代码如下:(上面的数字表示层数)

    <!-- 1 --><div class="div1"><!-- 2 --><span class="span1"></span><!-- 2 --><p class="p1"><!-- 3 --><span class="span2"></span></p><!-- 2 --><p class="p2"><!-- 3 --><span class="span3"></span></p></div>

结果应该为:

分析:注意本题要求按照标签层数进行遍历,不要按照每个标签从外到内遍历。既然要按照层数遍历,那么就可以使用一个参数来表示层数,还需要一个参数来表示根标签所以可以得到该方法需要两个参数。因为实际中层数是未知的,所以需要使用递归来进行遍历。

按照分析,代码如下:

        const div = document.querySelector('div')//获取最外层节点let res = []//创建结果数组function a(root, x) {//root为根节点,x为当前节点所在层数let marr = root.children//将当前节点的所有子节点以数组形式赋值给marrres[x] ? res[x].push(root.tagName) : res[x]=[root.tagName]//判断当前层数是否有值,有的话直接添加当前值,没有的话等于只有当前值的数组for (let i = 0; i < marr.length; i++) {//遍历当前节点的所有子节点组成的的数组a(marr[i], x + 1)//开始递归,第一个参数为遍历到的子节点,第二个参数为当前层数加一}}a(div, 0)console.log(res);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/651059.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTA 天梯赛 L1-010 比较大小【C++】 L1-011 A-B 【C++ vector动态数组】【Python 字符串replace函数】

L1-010 比较大小 判断顺序很重要 #include<iostream> using namespace std; int main() {int a, b, c;cin >> a >> b >> c;int temp;if (a > b) {temp a;a b;b temp;}if (a > c) {temp a;a c;c temp;}if (b > c) {temp b;b c;c te…

x86 64位的ubuntu环境下汇编(无优化)及函数调用栈的详解

1. 引言 为了深入理解c&#xff0c;决定学习一些简单的汇编语言。使用ubuntu系统下g很容易将一个c的文件编译成汇编语言。本文使用此方法&#xff0c;对一个简单的c文件编译成汇编语言进行理解。 2.示例 文件名&#xff1a;reorder_demo.cpp #include<stdio.h>typede…

常见的工业路由器访问问题

A&#xff1a;工业路由器已经设置了pptp怎么访问路由下面的电脑 1. 确认PPTP VPN设置&#xff1a;首先&#xff0c;确保PPTP VPN服务器在工业路由器上已正确设置&#xff0c;并且处于活动状态。这包括确保VPN服务器的IP地址、端口、用户名和密码等设置正确无误。 2. 连接到VP…

indexDB 大图缓存

背景 最近在项目中遇到了一个问题&#xff1a;由于大屏背景图加载速度过慢&#xff0c;导致页面黑屏时间过长&#xff0c;影响了用户的体验。从下图可以看出加载耗时将近一分钟 IndexDB 主要的想法就是利用indexDB去做缓存&#xff0c;优化加载速度&#xff1b;在这之前&am…

安卓NetworkStatsManager使用及demo

目录 一、TrafficStats类简介二、demo示例 一、TrafficStats类简介 TrafficStats Android API 8提供了android.net.TrafficStats类。 通过此类能获取设备重启以来网络信息&#xff0c;部分函数如下所示&#xff1a; static long getMobileRxBytes() //获取通过移动数据网络…

一张图带你理解 绝对路径 和 相对路径

绝对路径和相对路径是用于定位文件或目录位置的两种不同方式。 1、绝对路径&#xff1a; 绝对路径是从文件系统的根目录开始的完整路径&#xff0c;可以唯一地标识文件或目录的位置。 绝对路径是以根目录开始的 在Unix/Linux系统中&#xff0c;绝对路径是类似于/home/user/do…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容&#xff0c;Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion&#xff0c;是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布&#xff0c;主要用于根据文本的描述产生详细图像&…

GraphMAE 简介

GraphMAE: Self-Supervised Masked Graph Autoencoders 前言 当前的自监督学习领域主要分为对比式自监督学习以及生成式自监督学习&#xff0c;这篇文章主要聚焦于生成式对比学习。事实上后者在图领域的进展是远远不如前者的&#xff0c;但是在cv&#xff0c;nlp领域却是以生…

EaseUS RecExperts for Mac/Win:你的专属屏幕录像专家

在信息爆炸的时代&#xff0c;屏幕录像软件已经成为我们工作和生活中的得力助手。无论是教学演示、产品介绍&#xff0c;还是游戏录制、会议记录&#xff0c;一款功能强大的屏幕录像软件都能轻松应对。而EaseUS RecExperts&#xff0c;正是这样一款值得你信赖的屏幕录像专家。 …

JavaEE 初阶篇-深入了解 I/O 高级流(缓冲流、交换流、数据流和序列化流)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 缓冲流概述 1.1 缓冲流的工作原理 1.2 使用缓冲流的步骤 1.3 字节缓冲流于字符缓冲流的区别 1.4 字节缓冲流的实例 1.5 字符缓冲流的实例 2.0 转换流概述 2.1 字符…

去年十八,初识Java 2

我的Python和PHP是怎么学的&#xff1f;是直接写项目&#xff0c;在项目中学的。 不过…这招到 java 里好像不好使了QAQ 零、前置基础 1、类的继承 在 Java 中&#xff0c;extends 用于创建类的继承关系。当一个类继承另一个类时&#xff0c;它会获得父类的属性和方法&…

AS-V1000 视频监控平台,如何实现设备上线、下线时产生告警,及时通知管理人员

目录 一、客户需求 &#xff08;一&#xff09;客户需求 &#xff08;二&#xff09;掌握设备状况的意义 1、实时故障检测与预警 2、提升系统可靠性 3、优化资源配置 4、增强安全保障 5、提升管理效率 二、产品介绍 三、系统配置 &#xff08;一&#xff09;实现告警…