千家信息网

如何找到当前页面中出现次数最多的HTML标签

发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,这篇文章给大家介绍如何找到当前页面中出现次数最多的HTML标签,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这是一道前端基础与编程功底具备的面试题:如果你前端基础强会了解 doc
千家信息网最后更新 2025年02月12日如何找到当前页面中出现次数最多的HTML标签

这篇文章给大家介绍如何找到当前页面中出现次数最多的HTML标签,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

这是一道前端基础与编程功底具备的面试题:如果你前端基础强会了解 document.querySelector(*) 能够列出页面内所有标签,如果你编程能力强能够用递归快速实现同等的效果

> document.querySelectorAll('*')
< NodeList(593) [html, head, meta, meta, meta, meta, meta, meta, meta, title, link#favicon, link, link#MainCss, link#mobile-style, link, link, link, script, script, script, script, script, script, script, link, script, link, link, script, input#_w_brink, body, a, div#home, div#header, div#blogTitle, a#lnkBlogLogo, img#blogLogo, h2, a#Header1_HeaderTitle.headermaintitle.HeaderMainTitle, h3, div#navigator, ul#navList, li, a#blog_nav_sitehome.menu, li, a#blog_nav_myhome.menu, li, a#blog_nav_newpost.menu, li, a#blog_nav_contact.menu, li, a#blog_nav_rss.menu, li, a#blog_nav_admin.menu, div.blogStats, span#stats_post_count, span#stats_article_count, span#stats-comment_count, div#main, div#mainContent, div.forFlow, div#post_detail, div#topics, div.post, h2.postTitle, a#cb_post_title_url.postTitle2.vertical-middle, span, div.clear, div.postBody, div#cnblogs_post_body.blogpost-body, p, p, strong, p, p, p, strong, div.cnblogs_code, pre, span, span, span, span, span, p, span, strong, pre, strong, span, strong, br, br, br, div.cnblogs_code, pre, span, span, p, p, …]
[0 … 99]
[100 … 199]
[200 … 299]
[300 … 399]
[400 … 499]
[500 … 592]
__proto__: NodeList

使用 document.querySelectorAll 实现如下

const maxBy = (list, keyBy) => list.reduce((x, y) => keyBy(x) > keyBy(y) ? x : y)

function getFrequentTag () {
const tags = [...document.querySelectorAll('*')].map(x => x.tagName).reduce((o, tag) => {
o[tag] = o[tag] ? o[tag] + 1 : 1;
return o
}, {})
return maxBy(Object.entries(tags), tag => tag[1])
}

使用 element.children 递归迭代如下 (最终结果多一个 document)

function getAllTags(el = document) {
const children = Array.from(el.children).reduce((x, y) => [...x, ...getAllTags(y)], [])
return children
}

// 或者通过 flatMap 实现
function getAllTags(el = document) {
const children = Array.prototype.flatMap.call(el.children, x => getAllTags(x))
return [el, ...children]
}

关于如何找到当前页面中出现次数最多的HTML标签就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

标签 页面 次数 内容 前端 基础 更多 递归 帮助 编程 不错 一道 兴趣 功底 够用 小伙 小伙伴 效果 文章 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 某个数据库表的使用空间 英国网络安全专业最强的大学 无线 安全连接到服务器 网络安全调研报告范文 关系型数据库支持水平扩展能力吗 MySQL数据库大全 数据库系统有那些组成 南京定制软件开发规范 云服务器 nginx 华为服务器自检密码 戴尔服务器蓝屏初始化怎么回事 珠海软件开发公司 sql数据库长度和精度是什么 RAID阵列服务器数据恢复 2019年网络安全实施方案 web应用服务器配置 笔记本可以打开数据库吗 福建企业软件开发电话多少 2022北京冬奥会网络安全工作情况汇报 服务器数据库打开了网页无法连接 空数据库的相关属性怎么设置 服务器网络设备维护需要多少钱 宝塔app管理服务器 网络安全的动态图 软件开发方案app 数据库字段关联可视化操作 安徽服务器电源公司 长春盘古软件开发公司 软件开发专业毕业论文官方中文版 湖北属于哪个服务器
0