判断一个字符串“svsvbjdbkaszabcajkvbwo”,其中出现次数最多的字符,并统计其次数
核心算法:
1、用charAt遍历字符串
2、创建一个空对象,将每个字符存储在对象中,做判断,如果该属性值不为0,表示这个属性已经存进来了,只要将其属性值加1即可,否则,该属性没存进来,那么该属性值就等于1
obj {字符:出现的次数}
3、遍历对象,找出出现次数最多的字符,以及出现次数
<!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>
</head>
<body>
<script>
var str = 'svsvbjdbkaszabcajkvbwo';
var obj = {};
for (var i = 0; i < str.length; i++) {
var chars = str.charAt(i); // chars是字符串中的每个字符
if (obj[chars]) { // obj[chars]得到的是属性值,如果该属性值不为0,说明该属性存在了,属性值加1
obj[chars]++; //
} else { // 否则就为1
obj[chars] = 1;
}
}
var max = 0;
var s = '';
// 遍历对象,查找最大值和该字符
for (var k in obj) {
if (obj[k] > max) {
max = obj[k];
s = k;
}
}
console.log(str);
console.log('出现次数最多的字符是' + s + ',出现了' + max + '次');
</script>
</body>
</html>
运行结果: