美文网首页
字符串数组找出出现次数最多的字符及对应的次数

字符串数组找出出现次数最多的字符及对应的次数

作者: 爱吃炸鸡的Banana | 来源:发表于2020-12-17 20:43 被阅读0次
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        //有一个字符串数组,找出出现次数最多的字符及对应的次数
        let str = ['a', 'b', 'a', 's', 'f', 'g', 'g', 'g', 'h', 'j', 'j', 'k', 'k', 'g', 'f', 'd', 'd', 's', 's', 's', 's', 's', '3', '4', '4', '4', '3', '4', '3'];
        /*思路:
            利用对象两个特点
                属性可以动态添加=
                属性与属性值之间是一个键值对的关系
           1.声明一个空对象,遍历字符串
           2.将字符串的字符作为对象的属性,出现的次数作为对象的属性值
        */

        let objc = {};    //创建对象
        for (let i = 0; i < str.length; i++) {
            let s = str[i];
            //先判断对象是否有该属性
            if (objc[s] == undefined) {//使用字符串语法对对象取值,如果取出来是undefined,表示对象没有这个属性
                //既然没有表示这个字符是第一次出现,那么就将这个字符作为对象的属性,属性的值为1 (第一次出现)
                objc[s] = 1;//动态赋值
            } else {//如果对象有这个属性,则让这个属性的值自身+1  (每出现一次就加1)
                objc[s]++;
            }
        }
        console.log(objc);//遍历这个对象,就知道哪个字符出现的最多了
    </script>
</body>

</html>

因为objc.a == objc['a']

代码27行objc[s]产生的效果是在对象objc中添加属性,属性值则为出现的次数。
如:

objc = {
            3: 3,
            4: 4,
            a: 2,
            b: 1,
            d: 2,
            f: 2,
            g: 4,
            h: 1,
            j: 2,
            k: 2,
            s: 6
        }

相关文章

网友评论

      本文标题:字符串数组找出出现次数最多的字符及对应的次数

      本文链接:https://www.haomeiwen.com/subject/jwftnktx.html