charAt() 方法可返回指定位置的字符

发布时间 2023-11-15 23:48:03作者: 龙陌

执行以下程序,输出结果为()

var str = 'acdaecad';

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 val1;

var val2 = 0;

for (var k in obj) {

            if (obj[k] > val2){

                val2 = obj[k];

                val1 = k;

            }

}

console.log(val1);

A
a

B
3

C
e

D
1

正确答案:A

程序一开始先把字符串str的单个字符作为对象obj的属性,属性值为单个字符在字符串str中的个数,即obj = {a: 3, c: 2, d: 2, e: 1},
然后开始遍历对象obj,找出对象obj属性值最大的属性名,
因此最终val1结果为属性a,val2为该属性对应的属性值3,该程序的执行效果即为找出字符串str中同一元素出现个数最多的字符以及对应的个数。

var str = 'acdaecad';
var obj = {};
for (var i = 0;i<str.length;i++){
            if (obj[str.charAt(i)]){ //判断是obj里是否有str里面某个字母的属性
                obj[str.charAt(i)]++;//如果有,给那个属性++
            }
            else {
                obj[str.charAt(i)] = 1;      //如果没有,给obj添加那个属性
        }
        }
var val1;
var val2 = 0;
for (var k in obj) { //for in 循环遍历对象,k是键(也就是对象的属性名) obj就是原对象
            if (obj[k] > val2){  如果obj的属性值大于val2    里面a出现的最多。++次数最多,也就是3
                val2 = obj[k];   //val2等于obj的属性值 
                val1 = k;  //最后将属性名赋予  
            }
}
console.log(val1); // 所以最后输出a

输出字符串中出现最多的字符