判断一个字符串中出现次数最多的字符,统计这个次数

稿件来源: 阳光企业网站管理系统   撰稿作者: 太阳光   发表日期: 2012-02-21   阅读次数: 1132   查看权限: 游客查看

判断一个字符串中出现次数最多的字符,统计这个次数

先看一个网上不好的例子:

var str ="adadfdfseffserfefsefseeffffftsdg"; //命名一个变量放置给出的字符串
var maxLength = 0; //命名一个变量放置字母出现的最高次数并初始化为0
var result = ''; //命名一个变量放置结果输入
while( str != '' ){ //循环迭代开始,并判断字符串是否为空
oldStr = str; //将原始的字符串变量赋值给新变量
getStr = str.substr(0,1); //用字符串的substr的方法得到第一个字符(首字母)
eval("str = str.replace(/"+getStr+"/g,'')"); //执行替换
if( oldStr.length-str.length > maxLength ){
 //判断原始的字符串的长度减去替代后字符串长度是否大于之前出现的最大的字符串长度
maxLength = oldStr.length-str.length; //两字符串长度相减得到最大的字符串长度
result = getStr + "=" + maxLength //返回最大的字符串结果(字母、出现次数)
}
}
alert(result);

 

说它不好是使用了eval,不兼容标准浏览,不推荐使用。

下面是一个比较简单的方法:

var str ="adadfdfseffserfefs'efseeff$&ffftsdg";
for(var i=0,len=0,temp="";i<str.length;i++){
  var s=str.substr(i,1);
    var tt=str.split(s);
    if(tt.length>len){
      len=tt.length;
      temp=s+"出现最多次数为"+len;
    }
  }
alert(temp);

第三个方法是网上转摘的,想法也不错:

//将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数
var str = "abcdefgaddda";
var obj = {};
for (var i = 0, l = str.length; i < l; i++) {
	var key = str[i];
	if (typeof obj[key] == 'undefined') {
		obj[key] = 1;
	} else {
		obj[key]++;
	}
}
/*遍历这个hash table,获取value最大的key和value*/
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_key);

但奇怪的是在IE8下竟然发生max_key=undefinded

关键词: 前端试题,Javascript,数组   编辑时间: 2012-02-21

  • 感到高兴

    3

    高兴
  • 感到支持

    2

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    1

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
54.12%(46)
45.88%(39)
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博    验证码:  点击更新请先登陆
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 我的妈妈爸爸
  • 基于koa2+mysql+vue2.0+Element阳光内容管理系统
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐