js求字符串中出现字符最多的字符


varstr ="zhaochucichuzuiduodezifu";

var o = {};

for(vari = 0, length = str.length; i < length; i++) {

// var char = str[i];

var  char = str.charAt(i);

if(o[char]) {//char就是对象o的一个属性,o[char]是属性值,o[char]控制出现的次数

o[char]++;//次数加1

}else{

o[char] = 1;//若第一次出现,次数记为1

}

}

console.log(o);//输出的是完整的对象,记录着每一个字符及其出现的次数

//遍历对象,找到出现次数最多的字符和次数

varmax = 0;

varmaxChar =null;

for(varkeyino) {

if(max < o[key]) {

max = o[key];//max始终储存次数最大的那个

maxChar = key;//那么对应的字符就是当前的key

}

}

console.log("最多的字符是"+ maxChar);

console.log("出现的次数是"+ max);

以上代码运行后再控制台输出的结果如下图:

不过还是存在不足,不能直接把次数最高的字符同时输出,这还需要加额外的判断条件。完美的代码如下哈O(∩_∩)O


varstr ="nininihaoa";

var o = {};

for(vari = 0, length = str.length; i < length; i++) {

var char = str.charAt(i);

if(o[char]) {

o[char]++;//次数加1

}else{

o[char] = 1;//若第一次出现,次数记为1

}

}

console.log(o);//输出的是完整的对象,记录着每一个字符及其出现的次数

//遍历对象,找到出现次数最多的字符的次数

var max = 0;

for(var key in o) {

if(max < o[key]) {

max = o[key];//max始终储存次数最大的那个

}

}

for(var key in o) {

if(o[key] == max) {

//console.log(key);

console.log("最多的字符是"+ key);

console.log("出现的次数是"+ max);

}

}

结果如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,827评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,093评论 1 10
  • Javascript有很多字符串的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,...
    顽皮的雪狐七七阅读 2,207评论 0 2
  • 数组方法里push、pop、shift、unshift、join、split分别是什么作用。(*) (push、p...
    coolheadedY阅读 741评论 0 0