var str = "stiabsstringapbs";
var obj = {};
for (var i = 0; i < str.length; i++) {
var key = str[i];
if (!obj[key]) {
obj[key] = 1;
} else {
obj[key]++;
}
}
var max = -1;
var max_key = "";
var key;
for (key in obj) {
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert("max:"+max+" max_key:"+max_key);
关于上述代码说法错误的是( )。
A
obj是用来统计字符数量的
B
代码所实现的功能是:统计字符串中,所有字符的数量
C
max表示最大字符,key表示字符
D
代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数
正确答案:BC
var str = "stiabsstringapbs"; //定义字符串
var obj = {}; //定义对象
for (var i = 0; i < str.length; i++) { //遍历字符串
var key = str[i]; //存储字符
if (!obj[key]) { //若对象中不存在该key,初始化为1
obj[key] = 1;
} else { //若对象中存在该key,则数值加1
obj[key]++;
}
}
/*第一个for循环结束得到每个字符数量的对象,大概下面这鸟样
obj={
s:4,
t:2,
i:2,
...
}*/
var max = -1; //初始化最大数量,最大数量字符
var max_key = "";
var key;
for (key in obj) { //遍历obj对象,获得字符最大数量及对应字符
if (max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert("max:"+max+" max_key:"+max_key);
A. 正确。obj是用来统计字符数量的,每一个key就是对应的字符,对应的value就是这个字符出现的次数。
B. 错误。因为最后输出的是max和max_key。如果是统计字符串中,所有字符的数量,要对obj所含有的所有属性进行统计。
C. 错误。max统计的一个字符串中出现次数最多的字符的次数,而key就是这个字符。
D. 正确。obj对象进行字符出现次数的统计,循环进行出现次数最多的字符的判断和保存。所以代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数
标签:字符,obj,max,var,次数,key,字符串 From: https://www.cnblogs.com/longmo666/p/17835691.html