javascript - 大神们帮我看看这段代码关于JS去重的
PHP中文网
PHP中文网 2017-04-11 12:44:58
[JavaScript讨论组]
var s = 'aaabbbcccaaabbbaaa';
var obj = {};
var maxn = -1;
var letter;
for(var i = 0; i < s.length; i++) {
  if(obj[s[i]]) {
    obj[s[i]]++;
    if(obj[s[i]] > maxn) {
      maxn = obj[s[i]];
      letter = s[i];
    }
  } else {
    obj[s[i]] = 1;
    if(obj[s[i]] > maxn) {
      maxn = obj[s[i]];
      letter = s[i];
    }
  }
}
 
alert(letter + ': ' + maxn);

这里面的obj[s[i]]什么意思 为什么要定义obj[s[i]]++和obj[s[i]]=1

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
ringa_lee

这段代码应该是计算字符串中数量最多的字母和数量。

obj[s[i]]是利用对象属性[]统计字母个数。

具体过程:
先循环字符串中的每个字母s[i],也就是'a','a','a','b','b','b','c','c',……
然后判断obj是否有对对应的属性obj[s[i]]也就是obj['a'],obj['b'],obj['c']…
如果有就计数加1(obj[s[i]]++);如果没有就添加属性,并计数为1(obj[s[]]=1)
循环过程中比较各个字母的计数得到最大值和对应的字母

阿神

我去,觉得眼熟,原来这是我写的吧 。。http://www.cnblogs.com/zichi/... 里面第七题吧,自己看看

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号