今天在网上看面试题的时候,发现了这个问题---获取字符串中出现最多的字符并弹出其次数。百度了许多,看不大懂。然后自己学着去写了一个
一、怕自己忘记了 二、希望能帮助到其他的初学者,我也是小白,所以代码比较简单。同时注释比较多 方便理解!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
window.οnlοad=function () {
var str = 'afaafdff';
var obj ={}; //定义一个obj对象
//利用str.charAt(i)进行字符串截取
for(var i=0;i<str.length;i++){
if(!obj[str.charAt(i)]){ //判断对象中是否有这个字符
obj[str.charAt(i)] = 1; //没有就保存一个
}else{
obj[str.charAt(i)]++; //有的话就加一
}
}
// 到了这里 obj就成了这样的
// obj[f] = 4
// obj[a]= 2
// .....
//
var time = 0; //声明一个变量准备接受次数
var index = ''; //声明一个变量准备接受字符
//用打擂算法循环输出obj中保存的数据
for(var i in obj){ //i都代表着obj对象的键值(也就是字符)
if(obj[i]>time){
time = obj[i];
index = i;
//运行下面一段程序 就可以清楚看到 每个字符出现的次数为几次
//ps注释掉上面的2句才行 否则后面出现少的次数就被多的给冲掉了
// alert(i+'字符,出现了'+obj[i]+'次');
}
}
alert('次数'+time +',字符:'+index)
}
</script>
</head>
<body>
</body>
</html>
谢谢!