执行以下程序,输出结果为()
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
输出字符串中出现最多的字符
标签:字符,obj,charAt,指定,str,var,val2,val1,属性 From: https://www.cnblogs.com/longmo666/p/17835162.html