计算每个字符出现的次数和最多出现的是哪个字符,考虑到了多个字符出现次数相等的情况

<!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>计算每个字符出现的次数和最多出现的是哪个字符</title>

</head>

<body>

   

</body>

扫描二维码关注公众号,回复: 16283425 查看本文章

<script type="text/javascript">

//计算每个字符出现的次数和最多出现的是哪个字符

let str = 'gggjjggyyyooppoooww';

function findString(str){

    let StringNum = {};

//遍历字符串,得到对象{字符:出现次数}

    for(let i=0;i < str.length;i++){

        let e = str.charAt(i);

        if(StringNum[e]){

            StringNum[e]++;

        }else{

            StringNum[e] = 1;

        }

    }

    console.log(StringNum);

    let {maxArr,count} = {maxArr:[],count:0};

//遍历对象,找出出现次数最多的元素

    for (let key in StringNum) {

//出现次数更多则需剔除先前的元素并添加当前元素

        if (count < StringNum[key]) {

            count = StringNum[key];

            maxArr.shift();

            maxArr.push(key);

        }

//出现次数相同则在数组添加元素

        if (count == StringNum[key] && maxArr.indexOf(key) == -1) {

            maxArr.push(key);

        }

    }

//返回对象{高频字符数组,最大出现次数}

    return {maxArr,count}

}

console.log(findString(str));

</script>

</html>

 

猜你喜欢

转载自blog.csdn.net/weixin_46501763/article/details/128152692