本文共 607 字,大约阅读时间需要 2 分钟。
分析
题目的意思大致就是找出每个字符出现的次数,然后比较大小。那么每个字符都应该对应它出现的次数。既然是一一对应的,那我们就想到用对象的 key
和 value
来储存字符和其出现的次数。
具体做法
- 新建一个空对象
obj
- 遍历给定的字符串
- 接下来就是最重要的 把字符作为
key
值,对应次数作为value
添加给obj
。 - 判断
obj
是否存在当前循环的字符,有则让value
即次数++
,否则把当前项作为key
添加给obj
。 - 然后是比较次数的大小。
- 这时我们需要一个变量来储存
obj
的value
值。 - 声明一个变量
num
,并设置初始值为0
。 - 遍历
obj
,比较其value
值与num
值的大小。大则将其value
值赋给num
,否则num
值不变,从而找出最大的value
值。 - 这时我们需要一个数组来储存与最大的
value
值即num
匹配的key
值。因为这样的key
值可能不止一个,所以用一个数组来储存。 - 新建一个空数组
keys
。 - 遍历
obj
,判断与num
匹配的key
值,并添加在keys
内。 - 因为
keys
是个数组,需要用join
转换成字符串。 - 最后就可以返回出现次数最多的字符及次数了。
let str = "http://www.sxqyuming.com";function word(str){ let obj = {}; let num = 0; let keys = []; for(var i=0;i
转载地址:http://txsxx.baihongyu.com/