共计 565 个字符,预计需要花费 2 分钟才能阅读完成。
找出一个字符串中出现次数最多的字符并统计次数
看到这个题目时,第一个想到的是怎么进行字符匹配,拆开字符串再通过循环用 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);
正文完
发表至: javascript
2019-07-19