zoukankan      html  css  js  c++  java
  • JS求页面中出现最多次数的标签,并求出出现次数

    想到之前面试过的一条面试题。就是求出页面中出现次数最多 的标签,并求出最大值。因为出现最多 的标签可能是同时存在多个相同。比如span和div都是出现10次并且是最大值,

    所以把出现标签用放到数组里面去。。写下个人的解决方法。

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!-- <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->
        <title>求出页面中出现次数最多的标签</title>
    </head>
    
    <body>
        <span></span>
        <span></span>
        <span></span>
        <div>
            <div>
                sdf
            </div>
        </div>
        <div></div>
    </body>
    <script>
        var element = document.getElementsByTagName("*");//获取所有标签
        var obj = {}, max = 0, maxArr = [];
        for (var index = 0; index < element.length; index++) {
            if (!obj[element[index].tagName])
                obj[element[index].tagName] = 1;//如何Obj没有这个标签的属性则为1
            else
                obj[element[index].tagName]++;//否则就++
        }
        ///循环一遍obj求出最大值
        for (const key in obj) {
            // 页面中可能 有多个相同多的最大值标签
            if (obj[key] == max) {
                maxArr.push(key)
            }
            // 出现最多次数时
            if (obj[key] > max) {
                max = obj[key];
                maxArr = [];
                maxArr.push(key)
            }
    
        }
        console.log('页面中出现最多的标签是maxArr里面的几个值,出现次数是' + max)
    </script>
    
    </html>

    上面的结果maxArr是['SPAN','DIV']。

    其实这种题目和求一个字符串中出现最多的字符和次数都是一样原理

  • 相关阅读:
    总结ORACLE学习8023
    set @CurrentID=@@IDENTITY
    一个IT人:跳槽一定要谨慎
    SQL Server数据库开发(转自CSDN)
    46个不得不知的生活小常识
    CodeProjectSome Cool Tips For .Net 之一
    数据库原理综合习题答案
    EDM
    CodeProject Some Cool Tips for .NET之二
    The operation is not valid for the state of the transaction.
  • 原文地址:https://www.cnblogs.com/huzhuhua/p/12172069.html
Copyright © 2011-2022 走看看