1. 统计一个字符串中某个字符出现的次数?
function sum(str, a) {
let b = str.indexOf(a);
var num = 0;
while (b !== -1) {
console.log(b);
num++;
b = str.indexOf(a, b + 1)
}
return num;
}
2. 统计一个字符串中,出现次数最多的字符,出现了多少次?
方法一:
str = 'asdasddsfdsfadsfdghdadsdfdgdasd'
str = str.split('');
console.log(str);
var newStr = {};
// 数组去重 和计算出现的次数
str.forEach(function (item) {
if (newStr[item]) {
newStr[item]++;
} else {
newStr[item] = 1;
}
})
var cha = ''; //存储字符
var max = 0; //存储次数
for (let j in newStr) {
if (newStr[j] > max) {
max = newStr[j]
cha = j
}
}
console.log('出现最多的字符是' + cha, '出现的次数是' + max + '次');
方法二:
// 统计一个字符,中出现次数最多的字符。
var str = "zhaochucichuzuiduodezifu";
var o = {};
for (var i = 0, l = str.length; i < l; i++) {
// var char = str[i];
var char = str.charAt(i);
if (o[char]) { //char就是对象o的一个属性,o[char]是属性值,o[char]控制出现的次数
o[char]++; //次数加1
} else {
o[char] = 1; //若第一次出现,次数记为1
}
}
console.log(o); //输出的是完整的对象,记录着每一个字符及其出现的次数
//遍历对象,找到出现次数最多的字符和次数
var max = 0;
var maxChar = null;
for (var key in o) {
if (max < o[key]) {
max = o[key]; //max始终储存次数最大的那个
maxChar = key; //那么对应的字符就是当前的key
}
}
console.log("最多的字符是" + maxChar);
console.log("出现的次数是" + max);