找出一个字符串中出现次数最多的字符并统计次数
看到这个题目时,第一个想到的是怎么进行字符匹配,拆开字符串再通过循环用 indexOf 进行匹配,同时做个计数器进行累加。

写 indexOf 的时候又突然想到,好像能进行 match ,直接拿到匹配结果,但试了一下只能匹配到第一个(all 呢?是不是有 matchAll?)。
随后查了ES6的资料 ECMAScript 6 入门

clipboard.png
看到这个感觉这个题目简单了(但实际上还有点曲折)。

clipboard.png
。。。

clipboard.png
可惜现在还用不了。。。

改用 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);

cason6810
110 声望7 粉丝