1. 先找出每个字符出现的次数
let str = 'abcoadadooadbdsfsdfwewerewrwrqeqgfdgfdgcvgbhooo';
let obj = {};
for (let i = 0; i < str.length; i++) {
//根据字符的名称查找对象中有没有对应的属性
if (obj[str[i]]) {
// 有就+1
obj[str[i]]++;
} else {
// 没有就等于1
obj[str[i]] = 1;
}
}
console.log(obj);
返回如下结果:
2.再遍历字符串 比较大小得出谁出现的次数最多,这里有两种方式
2.1 利用for in 循环
// let max = 0;
// let val = '';
// for (var k in obj) {
// // k得到的是属性名 ,obj[k]得到是属性值
// if (obj[k] > max) {
// max = obj[k];
// val = k;
// }
// }
// console.log('最多的字符是' + val);
2.2 利用forEach遍历数组
let max = {
name: '',
count: 0
}
Object.keys(obj).forEach(k => {
//判断是否有别的字符串大于max
if (obj[k] > max.count) {
max.name = k
max.count = obj[k]
}
})
console.log(max);