思路:首先要利用一个空对象去统计字符以及字符出现的次数,如果这个字符在对象里面,比如obj['字符'],通过if条件判断,如果存在于该对象中就执行obj['字符']++,如果不在的话就说明统计的是第一次,所以obj['字符']=1,这个是核心思想,然后我又分别设置了一个字符数组和一个统计字符次数的数组,分别是strindex和number。然后通过求得number中最大的值得到次数最多的子字符,然后记录其索引号,根据索引号去strindex数组中查找字符,最后就可以得到出现次数最多的字符以及它的次数了。代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var str = 'abcoefoxyozzopp';
var obj = {};
for (var i = 0; i < str.length; i++) {
if (obj[str.charAt(i)]) {
obj[str.charAt(i)]++;
} else {
obj[str.charAt(i)] = 1;
}
}
// 设置一个空数组用来存次数
var number = [];
// 存字符
var strindex = [];
//查找次数最多的字符
for (var k in obj) {
number.push(obj[k]);
strindex.push(k);
}
//遍历数组求最大值和它的索引
var max = number[0];
var maxindex = 0;
for (var j = 1; j < number.length; j++) {
if (number[j] > max) {
max = number[j];
maxindex = j;
}
}
console.log("出现次数最多的字符为:" + strindex[maxindex] + "次数为:" + max);
</script>
</head>
<body>
</body>
</html>
运行结果展示: