找出一个字符串中出现次数最多的字符并统计次数
看到这个题目时,第一个想到的是怎么进行字符匹配,拆开字符串再通过循环用 indexOf 进行匹配,同时做个计数器进行累加。
写 indexOf 的时候又突然想到,好像能进行 match ,直接拿到匹配结果,但试了一下只能匹配到第一个(all 呢?是不是有 matchAll?)。
随后查了ES6的资料 ECMAScript 6 入门
看到这个感觉这个题目简单了(但实际上还有点曲折)。
。。。
可惜现在还用不了。。。
改用 match 组合 /g 得到了需要的结果:
let str="hajjfhlhhff";
let _arr = []; // 存储统计数用
let tmp = []; // 临时存储其中一个字母的数量
for (let val of str) {
tmp = str.match(eval("/"+val+"/g"));
// tmp 的长度就是该字母重复出现的次数
if (_arr[tmp.length] === undefined) {
_arr[tmp.length] = val;
}else if ( !_arr[tmp.length].includes(val)){
// 把相同数量的字母拼在一起显示
_arr[tmp.length] = val + ',' + _arr[tmp.length];
}
}
// _arr 的索引位置就是字母重复出现的次数
console.log(_arr);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。