javascript - 统计字符串出现次数最多
天蓬老师
天蓬老师 2017-04-11 12:39:57
[JavaScript讨论组]

这几天公司面试新人,出了一道题,统计字符串出现次数最多

var str = 'asdfssaaasasasasaa';
var json = {};
for (var i = 0; i < str.length; i++) {
    if(!json[str.charAt(i)]){
        json[str.charAt(i)] = 1;
    }else{
        json[str.charAt(i)]++;
    }
};
var Max = 0;
var Index = '';
for(var i in json){
    if(json[i]>iMax){
        Max = json[i];
        Index = i;
    }
}
console.log('出现次数最多的是:'+Index+'出现'+Max+'次');

我用了另一种方法,同事说那样执行效率低,写了这种给我看,其中有一步不懂

    if(!json[str.charAt(i)]){
        json[str.charAt(i)] = 1;
    }else{
        json[str.charAt(i)]++;
    }

    对象加[]这种是什么做法?
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
阿神

在json中取一个key为str.charAt(i)的value,功能和.一样,比如'var json = {a: 3},
但是又有一些区别:

[]总是能代替点运算符。但"."不一定能全部代替[]
[]可以用字符串变量的内容作为属性名
[]可以用纯数字为属性名
[]可以用js的关键字和保留字作为属性名

天蓬老师

[str.charAt(i)]就是对象的key啊

巴扎黑

charAt()方法返回指定索引位置的char值,怎么会是对象呢,json[str.charAt(i)] = 1是不是就像一个hash

巴扎黑

这个相当于把字符当作json对象的key,对象的key必须是唯一的,然后用value来统计字符出现的次数。

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

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