首页 > 试题广场 >

1. var str = "stiabsstringapbs

[不定项选择题]
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);
关于上述代码说法错误的是(      )。
  • obj是用来统计字符数量的
  • 代码所实现的功能是:统计字符串中,所有字符的数量
  • max表示最大字符,key表示字符
  • 代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数
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);
编辑于 2019-08-20 15:46:12 回复(5)
***,看成说法正确的了,完美避开正确答案😥
发表于 2019-09-01 12:59:00 回复(11)
这是一道很不错的语文题。🤐
发表于 2021-01-22 17:18:14 回复(0)
A. 正确。obj是用来统计字符数量的,每一个key就是对应的字符,对应的value就是这个字符出现的次数。
C. 错误。max统计的一个字符串中出现次数最多的字符的次数,而key就是这个字符。
B. 错误。因为最后输出的是max和max_key。如果是统计字符串中,所有字符的数量,要对obj所含有的所有属性进行统计。
D. 正确。obj对象进行字符出现次数的统计,循环进行出现次数最多的字符的判断和保存。所以代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数

编辑于 2019-08-14 11:44:11 回复(2)
A选项有歧义。obj这个对象里面,每个在str中出现过的字母都会对应一个属性,且属性值为该字母在str中出现过的次数。说obj用来统计字符数量,我想大家一下子都想到统计str这个字符串的长度了。
发表于 2020-11-03 16:00:10 回复(0)
好家伙,直接反向答题
发表于 2021-05-24 15:37:42 回复(0)
怪我语言是体育老师教的了
发表于 2021-02-07 10:44:37 回复(0)
我感觉d说的比较片面,什么叫判断出现次数最多的字符并统计它,明明这段代码的目的是比较所有字符出现的次数,然后打印次数最大的字符和次数,前文这样说让我感觉它的意思是整个obj中只有这个出现最多的字符以及它出现的次数
发表于 2020-03-09 12:46:41 回复(0)
把题目看成说法正确的了🤦‍♂️
发表于 2021-04-26 13:17:46 回复(0)
我看成选正确的了。。。
发表于 2020-03-04 13:49:52 回复(0)
B也不算错吧?
发表于 2019-08-09 09:53:11 回复(5)
a是错的,因为obj是用来统计“各个字符的数量”,而不是“字符的数量”,从c选项max是用来统计最大字符个数我们知道,题目是很扣字眼的,为什么c抠字眼,a不抠呢?而且有d选项行成鲜明对比,d才是唯一正确说法
发表于 2021-03-23 07:40:20 回复(0)
又是一道毫无价值的文字游戏题
编辑于 2024-01-17 21:35:05 回复(0)
A选项有歧义,没说清楚是统计单个字符数量还是所有字符总数
发表于 2023-02-08 11:26:33 回复(0)
用obj来保存
发表于 2022-10-27 10:26:04 回复(0)
max表示出现的最大次数,key表示出现最大次数对应的字符。
发表于 2022-02-08 12:02:59 回复(0)
A是用来存储字符数量的吗?
发表于 2021-04-12 16:48:19 回复(0)
C答案,应该是数量最多的字符
发表于 2020-10-10 09:56:51 回复(0)
出现最多不不等于最大。。。。。
发表于 2020-09-26 14:52:54 回复(0)
我觉得这题的表述和项目经理说的一样欠揍
发表于 2020-09-13 11:08:47 回复(0)