html标签如何倒序,js统计页面中各个标签出现的次数,倒序排列

// html

hello
world

//输出一个数组

const result = [{tag:'div',num: 100}, {tag: 'div',num: 80}];

Document

// 方法一

var res = []

var nodelist = document.body.getElementsByTagName('*') // 拿到就是扁平的,不需要递归

var obj = {}

for (let i = 0; i < nodelist.length; i++) {

// localName == tagName.toLowerCase()

if (obj[nodelist[i].localName]) {

obj[nodelist[i].localName] ++

} else {

obj[nodelist[i].localName] = 1

}

}

for (const key in obj) {

res.push({

tag: key,

num: obj[key]

})

}

res.sort((a,b) => (b.num - a.num))

console.log(obj)

console.log(res)

// 方法二 递归

var res1 = []

var obj1 = {}

function count (node) {

var tagName = node.nodeName.toLowerCase()

if (obj1[tagName]) {

obj1[tagName] ++

} else {

obj1[tagName] = 1

}

if (node.children) {

for (let i = 0; i < node.children.length;i++) {

count(node.children[i])

}

}

}

count(document.body)

for (const key in obj1) {

res1.push({

tag: key,

num: obj1[key]

})

}

res1.sort((a,b) => (b.num - a.num))

console.log(obj1)

console.log(res1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值