题解 | #高频数据类型#

高频数据类型

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

思路:使用map表示数据类型与对应出现的次数,使用变量maxc表示出现的最大次数,使用arr表示结果。首先使用forEach方法遍历数组array,并判断每一项的数据类型,再设置map将对应的数据类型出现的次数加一,同时使用当前出现次数更新最大出现次数;接着使用forEach方法遍历map的键值对,如果出现的次数等于maxc,则将数据类型加入arr,最后将maxc加入arr即可。

<script type="text/javascript">
  const _findMostType = array => {
     let map=new Map()
     let maxc=0
     let arr=[]
     array.forEach(item=>{
        //统计次数 get无法获取则是返回undefined
        map.set(typeof(item),(map.get(typeof(item)) || 0) + 1)
        maxc=Math.max(maxc,map.get(typeof(item)))
     })
     map.forEach((value,key)=>{
        if(value==maxc)
          arr.push(key)
     })
     arr.push(maxc)
     return arr
  }
</script>

总结:使用new Map()方法创建map对象,使用set(key,value)方法设置map,使用get(key)方法获取map,如果get无法获取则返回undefined,故此时可以使用(map.get(typeof(item)) || 0),即如果get获取到数据则使用对应数据,反之undefined则使用0。注意,map对象也可以使用forEach方法,其遍历value和key。

#高频数据类型#
前端js面试 文章被收录于专栏

前端js面试,帮助你更好的理解js。

全部评论

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务