不废话,上代码,可以直接运行
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>找出字符串中出现次数最多的字母</title>
<link rel="short icon" type="images/x-icon" href="/" />
</head>
<body>
<input type="text" name="text1" id="text1" onkeyup="maxNum()" value="" placeholder="请输入你要查询的字符串"/>
<div id="val">
</div>
</body>
<script type="text/javascript">
function maxNum() { //定义函数
/*// debugger; */
// 断点调试,可以看到代码执行的过程;如果不知道,就解除注释运行代码在浏览器的控制台调试
var str = document.querySelector("#text1").value; // 获取值
var json = {}; // 定义对象存数据
for(var i = 0; i < str.length; i++) {
if(!json[str.charAt(i)]) {
// 进行判断,如果字母key不存在就将其的值赋值为1
json[str.charAt(i)] = 1;
} else {
// 进行判断,如果字母key存在就将其的值赋值+1
json[str.charAt(i)]++;
}
}
// 定义两个变量来接受key与value
var iMax = 0;
var iIndex = '';
// 遍历对象
for(var i in json) {
// 判断对象的value是不是大于最大值
if(json[i] > iMax) {
// 大于就将value赋值给最大值
iMax = json[i];
// 将key赋值给字母
iIndex = i;
}
}
// 打印出对象
console.log(json)
// 打印出出现最多的字母和它出现的次数
console.log(iMax, iIndex);
// document.querySelector("#val").innerText="出现最多的字母是:"+iIndex+",出现"+iMax+"次";
document.querySelector("#val").innerText=`出现最多的字母是:+${iIndex}+,出现+${iMax}+次`; // 模板字符串写法
}
</script>
</html>