• JS38 高频数据类型


    题目来源:

    高频数据类型_牛客题霸_牛客网 (nowcoder.com)

    JS38 高频数据类型

    描述

    请补全JavaScript代码,要求找到参数数组中出现频次最高的数据类型,并且计算出出现的次数,要求以数组的形式返回。
    注意:
    1. 基本数据类型之外的任何引用数据类型皆为"object"
    2. 当多种数据类型出现频次相同时将结果拼接在返回数组中,出现次数必须在数组的最后

    示例1

    输入:

    __findMostType([0,0,'',''])

    复制输出:

    ['number','string',2]或['string','number',2]
    


    题目要求很明确,就是返回数组种最多的数据类型和该数量。

    js种使用typeof x来返回x的数据类型

    既然考察的是数据类型(数据类型是一个字符串)的数量统计,我们可以采用map来存数据类型及其个数。

    所以我们需要遍历数组种每个元素的数据类型,并存入map数组种。遍历过程要更新最大值。

    遍历完,然后将 最大值次数的 数据类型压入结果数组中。

    最后再把max压入结果数组。最后返回。

    根据该思路可以写出代码:【注意力扣种必须使用var,使用let过不了】

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset=utf-8>
    5. head>
    6. <body>
    7. <script type="text/javascript">
    8. const _findMostType = array => {
    9. // 补全代码
    10. var max=0;//最大次数
    11. var res=[];//结果数组
    12. var map=new Map();//别漏了new
    13. //遍历数组array
    14. for(let a of array){
    15. var type=typeof a;
    16. if(map.has(type)){
    17. //如果已经存过该类型
    18. var count=map.get(type);
    19. count++;
    20. map.set(type,count);
    21. max=Math.max(max,count);
    22. }else{
    23. //第一次出现该数据类型
    24. map.set(type,1)
    25. }
    26. }
    27. //查找符合条件的数据类型
    28. var keys=map.keys();//获取map种的key集合
    29. for(let k of keys){
    30. if(map.get(k)===max){
    31. res.push(k);
    32. }
    33. }
    34. res.push(max);
    35. return res;
    36. }
    37. script>
    38. body>
    39. html>

  • 相关阅读:
    HTML5+CSS3小实例:脉冲波纹催眠动画特效
    Spring Gateway使用JWT实现统一身份认证
    Mysql 基础命令增删改查
    CentOs程序环境准备
    最长递增子序列
    ES6 set map初识
    Linux内核设计与实现 第八章 下半部和推后执行的工作
    python--第五章 python字典&&函数
    ACTF 2022圆满落幕,0ops战队二连冠!!
    MYSQL下载及安装完整教程
  • 原文地址:https://blog.csdn.net/m0_62742402/article/details/134063044