JavaScript循环语句有一个问题不能理解


  <script>
        //1.用一个对象 ,来判断是否有该属性的值
        var o={
            age:18
        }
        if(o['age']){
            console.log('有');
        }else{
            console.log('无');
        }

        var str='abcdefghijkdheifddd';
        var o={};
        for(var i=0;i<str.length;i++){
            var chars=str.charAt(i);
            if(o[chars]){
                o[chars]++;
            }else{
                o[chars]=1;
            }
        }
        console.log(o);
        //2.遍历对象
        var max=0;
        var ch='';
        for(var k in o){
            //k得到的是 属性名
            //k[o]得到的是属性值
            if(o[k]>max){
                max=o[k];
                ch=k;
            }
        }
        console.log(max);
        console.log('最多的字符是'+ch)
    </script>

倒数第六句ch=k;如何理解?为什么ch输出来的就是最多的字符?

倒数第六句ch=k; 当前找到的出现次数最多的字符
o是个字典,存着每个字符以及每个字符对应的次数。
第27行就是遍历那个字典对象,找出出现次数最多的key

加油 同学

charAt(i)是指字符窜到位置
K会越来越大,所以最后ch会去最大值
注:
感觉这代码没什么意义

ch=k;

将最多的字符赋值给ch
最后console.log('最多的字符是'+ch)语句输出最多的字符。

如有帮助,还请帮忙点下采纳!感谢!