找出一个字符串中出现次数最多的字符并统计次数

2次阅读

共计 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);

正文完
 0