首页 > 试题广场 >

执行以下程序,输出结果为() var str = 'acda

[单选题]

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

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
  • 3
  • e
  • 1
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

发表于 2021-12-23 08:42:09 回复(1)
输出字符串中出现最多的字符
发表于 2021-12-13 11:19:40 回复(6)
上层循环用于统计字符的数量,后面用于输出字符数量最多的字符
发表于 2022-09-13 22:21:58 回复(0)
for in循环不会全部执行完才跳出吗
发表于 2022-04-22 20:11:33 回复(1)
输出的是第一个字母吧
发表于 2022-02-19 12:44:10 回复(1)
obj.prop 属性只能为确定字符串 obj[prop] 属性可为变量 给不存在的属性赋值,隐式增加该属性
编辑于 2024-04-02 01:55:49 回复(0)
为什么我拿vscode和idea运行结果是e呢
发表于 2023-03-04 17:04:51 回复(0)
charAt() 方法可返回指定位置的字符。
发表于 2023-01-17 18:20:49 回复(0)
审题
发表于 2022-01-23 02:20:38 回复(0)