考虑到出现频率最高的字符可能有多个,所以需要一个数组来存储出现频率最高的字符,再通过join方法转成字符串
1 var str = 'kkkkadsfdsf23dfds中中诺防守打法睡得晚让34 水电费水电费来了 !%#¥%#' 2 var map = {} 3 var num = 0 4 var maxStr = '' 5 var resArr = [] 6 for(var i=0; i<str.length; i++) { 7 if(map[str[i]]) { 8 map[str[i]].num++ 9 }else{ 10 map[str[i]] = {num: 1} 11 } 12 } 13 for(var key in map) { 14 console.log('字符:' + key + ',出现的次数为:' + map[key].num) 15 if(map[key].num > num) { 16 resArr = [key] 17 num = map[key].num 18 } else if(map[key].num == num) { 19 resArr.push(key) 20 num = map[key].num 21 } 22 } 23 maxStr = resArr.join(',') 24 console.log('出现频率最高的字符是:' + maxStr + ',出现次数为:' + num)