let str = 'lmyqrourouroulllllmyfc'
let obj = {}
for (let i = 0; i < str.length; i++) {
// 每个元素
let chars = str.charAt(i)
// console.log('chars', chars);
// console.log('obj111', obj[chars]);
if (obj[chars]) {
// 统计出现最多次的字符是啥?,随便把出现次数也统计了。
obj[chars]++
} else {
obj[chars] = 1
}
}
// 得到出现最多的字数的字符是谁
let max = 0;
let strMax = '';
for (let key in obj) {
// 判断,然后得到最多次数的字符串和次数
if (obj[key] > max) {
max = obj[key]
strMax = key
}
}
console.log(`出现最多字符串:${strMax}`)
console.log(`出现次数是:${max}`)
方式2: for...of
上面的for in 遍历字符串会比较冒麻烦,那可以用es6的for of 相对方便很多,减少了代码
for (var item of str){
if(obj[item]){
obj[item]++
}else{
obj[item]=1
}
}
下面完整代码.
let str = 'lllnndghishfio'
let obj ={}
for (var item of str){
if(obj[item]){
obj[item]++
}else{
obj[item]=1
}
}
console.log(obj)
let max = 0;
let strMax = '';
for (let key in obj) {
console.log('key',key)
if (obj[key] > max) {
max = obj[key]
strMax = key
}
}
console.log(`出现最多字符串:${strMax}`)
console.log(`出现次数是:${max}`)
for... of
和for... in
的区别
① for of无法循环遍历对象
② 遍历输出结果不同
③ for in 会遍历自定义属性,for of不会