运行结果如下:
参考代码如下:
<!doctype html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<script type="text/javascript">
var str = "aabbccddabcdhzhzmhhdwmyqjydfxjccccc";
function max() {
var o = {};
for (var i = 0; i < str.length; i++) {
var item = str.charAt(i);
if (o[item]) {
o[item]++;
} else {
o[item] = 1;
}
}
var max = 0;
for (var key in o) {
if (max < o[key]) {
max = o[key];
var tmp;
tmp = key;
}
}
document.write("出现次数最多的字符是:" + tmp + "出现次数为:" + max);
}
max(str);
</script>
</body>
</html>
要理解这段代码,需要掌握以下几个知识点:
1. 字符串操作:如何遍历字符串的每个字符。
2. 对象的使用:如何在JavaScript中创建一个对象,并利用对象来计数字符串中每个字符出现的次数。
3. 循环结构:for循环的使用,包括遍历字符串和遍历对象属性。
4. 条件判断:如何比较两个值,并根据比较结果进行相应的操作。
5. 文档操作:如何使用`document.write`方法将结果输出到HTML文档中。
代码解析如下:
1. 定义一个名为`str`的字符串变量,内容为"aabbccddabcdhzhzmhhdwmyqjydfxjccccc"。
2. 定义一个名为`max`的函数,该函数用于找出`str`中出现次数最多的字符及其出现次数。
3. 在`max`函数内部,首先创建一个空对象`o`。
4. 使用for循环遍历`str`中的每个字符:
通过`str.charAt(i)`获取当前字符。
检查对象`o`中是否已经有该字符作为键,如果有,则对应的值(计数器)加1;如果没有,则在对象`o`中创建该键,并将计数器设为1。
5. 初始化一个变量`max`来存储最大出现次数,并初始化为0。
6. 再次使用for循环遍历对象`o`的所有键值对:
如果当前字符的计数大于`max`,则更新`max`为当前字符的计数,并将`tmp`设置为当前字符。
7. 最后,使用`document.write`将结果输出到HTML文档中,显示出现次数最多的字符及其出现次数。
8. 调用`max`函数,并传入`str`字符串作为参数。
执行这段代码后,浏览器会显示出现次数最多的字符及其出现次数。在这个例子中,字符"c"出现的次数最多,共出现了5次。