JS38 统计高频数据类型

这段JavaScript代码用于分析数组中各数据类型的出现次数,当出现频次最高时返回一个包含该数据类型和其次数的数组。所有引用数据类型被归类为object。如果多个数据类型频次相同,都会被包含在返回结果中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请补全JavaScript代码,要求找到参数数组中出现频次最高的数据类型,并且计算出出现的次数,要求以数组的形式返回。
注意:

  1. 基本数据类型之外的任何引用数据类型皆为"object"
  2. 当多种数据类型出现频次相同时将结果拼接在返回数组中,出现次数必须在数组的最后
<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8>
    </head>
    <body>
        <script type="text/javascript">
            const _findMostType = array => {
                // 存放结果的数组
                let arr = [];
                // 对象,数据类型为键名,键值为数据类型出现的次数
                let o = {};
                // 出现次数最多数据类型的次数
                let maxnum = 0;
                // 遍历数组
                array.forEach(item => {
                // 获取数据类型 -- 基本数据类型、object类型
                    let type = (typeof item) ? (typeof item) : 'object';
                    o[type] = o[type] ? o[type] + 1 : 1;
                    maxnum = maxnum > o[type] ? maxnum: o[type];
                })
                
                // 生成返回数组
                Object.keys(o).forEach(key => {
                    if(o[key] === maxnum){
                        arr.push(key);
                    }
                })
                arr.push(maxnum);
                return arr;
            }
        </script>
    </body>
</html>

创建一个对象,用来存数据类型的出现次数 数据类型:次数
但是数据类型有 基本数据类型,引用数据类型,引用数据类型就是’object’
判断在对象中类型是否存在,如果不存在则添加进去,如果存在就数量+1;每添加一种数据类型,或者数据类型的值+1,那么就判断最大的maxnum是不是最大的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值