(function (str) { var obj = {}; var num = 0; var value = ''; for (var i = 0; i < str.length; i++) { // 如果obj中不存在某个字符属性,就把它添加进去 if (!obj[str[i]]) { obj[str[i]] = []; } // 把值一一填入到obj[a[i]]中 obj[str[i]].push(str[i]); } //console.log(obj); // 找出最多项的那个 for (var attr in obj) { if (num < obj[attr].length) { num = obj[attr].length; value = obj[attr][0]; } } var res = '字符最多的是' + value + ',出现了' + num + '次'; console.log(res); })(str);
解法二:正则
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
(function (str) { var num = 0; var value = ''; // 排序 str = str.split('').sort().join(''); // 计算 // \1表示和(\w)相同,这里找出连续相同的字符串 var re = /(\w)\1*!/g; str.replace(re, function ($0, $1) { if (num < $0.length) { num = $0.length; value = $1; } }); var res = '字符最多的是' + value + ',出现了' + num + '次'; console.log(res); })(str);