题解 | #高频数据类型#

高频数据类型

https://www.nowcoder.com/practice/687425f78096428baa58fbdcf024244a

<script type="text/javascript">
        const _findMostType = array => {
            // 初始化类型计数对象
            let objCount = {};
            // 获取最大出现次数
            let maxCount = 0;

            // 遍历数组,统计每种类型的出现次数
            array.forEach(item => {
                let type = typeof item;
                // 针对 null 单独处理,因为 typeof null 会返回 "object"
                if (item === null) {
                    type = "null";  // null 是一种基础数据类型
                }
                objCount[type] = (objCount[type] || 0) + 1;
                // 实时统计出现最大次数可以通过测试
                maxCount = Math.max(maxCount, objCount[type])
            })
            // forEach之后统一查找最大值的方式通过不了测试不知道为什么!!!
            // maxCount = Math.max(...Object.values(objCount))
        
            // 通过提取objCount的key值数组,再过滤保留符合的key(value值等于maxCount)
            let result = Object.keys(objCount).filter(item => objCount[item] === maxCount)
            // 返回结果,最后是最大出现次数
            return [...result, maxCount];
        }
    </script>

全部评论

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务