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