题解 | #高频数据类型#
高频数据类型
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>