中心思想:
1、利用string对象中的charAt()的方法将字符串中的每一个字符找出;
2、利用json[char]属性对每一次出现的字符进行计数;
3、进行最后的次数比较;得出出现最多的字符及其次数;
<!DaCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script>
/*
* 面向过程法
*/
var str = "abcssssssss";
var json = {};
for(var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if(json[char]) { //char就是对象json的一个属性,json[char]是属性值,json[char]控制出现的次数 ;
json[char]++;//次数加1
} else {
json[char] = 1;若第一次出现,次数记为1 ;
}
}
console.log(json);//输出的是完整的对象,记录着每一个字符及其出现的次数 //遍历对象,找到出现次数最多的字符和次数 ;
var max = 0;
var maxChar = null;
for(var key in json) {
if(max < json[key]) {
max = json[key];//max始终储存次数最大的那个 ;
maxChar = key;//那么对应的字符就是当前的key ;
}
}
console.log("出现次数最多是: " + maxChar+' , 总共出现: '+max+' 次');
/*
* 面向对象法
*/
/*function Tab(str){
this.a = {};
for(var i = 0; i < str.length; i++) {
this.char = str.charAt(i);
if(this.a[this.char]) {
this.a[this.char]++;
} else {
this.a[this.char] = 1;
}
}
this.max = 0;
this.maxChar = null;
for(this.key in this.a) {
if(this.max < this.a[this.key]) {
this.max = this.a[this.key];
this.maxChar = this.key;
}
}
console.log("出现次数最多是: " + this.maxChar+' , 总共出现: '+this.max+' 次');
}
// 实例
var str = "abcsssss";
var b=new Tab(str);*/
</script>
</html>