0
点赞
收藏
分享

微信扫一扫

JS面试题-判断字符串‘abcoefoxyozzopp‘中出现次数最多的字符,并统计其次数

sunflower821 2022-04-14 阅读 82
javascript

思路:首先要利用一个空对象去统计字符以及字符出现的次数,如果这个字符在对象里面,比如obj['字符'],通过if条件判断,如果存在于该对象中就执行obj['字符']++,如果不在的话就说明统计的是第一次,所以obj['字符']=1,这个是核心思想,然后我又分别设置了一个字符数组和一个统计字符次数的数组,分别是strindex和number。然后通过求得number中最大的值得到次数最多的子字符,然后记录其索引号,根据索引号去strindex数组中查找字符,最后就可以得到出现次数最多的字符以及它的次数了。代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var str = 'abcoefoxyozzopp';
        var obj = {};
        for (var i = 0; i < str.length; i++) {
            if (obj[str.charAt(i)]) {
                obj[str.charAt(i)]++;
            } else {
                obj[str.charAt(i)] = 1;
            }
        }
        // 设置一个空数组用来存次数
        var number = [];
        // 存字符
        var strindex = [];
        //查找次数最多的字符
        for (var k in obj) {
            number.push(obj[k]);
            strindex.push(k);
        }
        //遍历数组求最大值和它的索引
        var max = number[0];
        var maxindex = 0;
        for (var j = 1; j < number.length; j++) {
            if (number[j] > max) {
                max = number[j];
                maxindex = j;
            }
        }
        console.log("出现次数最多的字符为:" + strindex[maxindex] + "次数为:" + max);
    </script>
</head>

<body>

</body>

</html>

运行结果展示:

 

举报

相关推荐

0 条评论