如sssfgtdfssddfsssfssss,出现最多的字符是s,出现了12次
传统写法
分析:
1.准备一个空的json,通过循环字符串的每个字符来看,如果json里没有这个字符,就在json里创建一个新的数组,并把这个字符放进数组里,如果json里有这个字符,继续把字符添加进数组里,这时循环完json里有n个数组
2.找出json里长度最长的数组,此时长度即个数,而最多的字符就是这个参数,用到for...in...循环和参数attr
var str="sssfgtdfssddfsssfssss"; function max(){ var json={}; var num=0; var value=null; for(var i=0;i<str.length;i++){ var k=str[i]; if(!json[k]){ json[k]=[]; } json[k].push(k); //这里不需要else,否则只有存在这个字符时才添加。次数会少一次 } for(var attr in json){ if(num<json[attr].length){ num=json[attr].length; value=json[attr][0]; } } alert("出现最多的字符是:"+value+',出现次数是:'+num); }; max(str);
如果不想往json里放东西怎么做呢?
分析:
1.准备一个空的json,通过循环字符串的每个字符来看,如果json里没有这个字符,就把这个字符的数目设为1,如果有则数目++
2.循环json里的字符,只要存在,就把他的数目赋给一个变量,并且每次都比较新的字符数量和这个变量的大小,如果比变量大,则更新变量的值,最后这个变量的值就是最多字符的数目
而最多的字符就是json里这个字符
var str="sssfgtdfssddfsssfssss"; function max(){ var json={}; for(var i=0;i<str.length;i++){ var k=str[i]; //k是所有字符,字符串也跟数组一样可以通过中括号下标方法取到每个子元素 if(json[k]){ json[k]++; //json里有这个字符时,把这个字符的数量+1, } else{ json[k]=1; //否则把这个字符的数量设为1 } } var num=0; var value=null; for(var k in json){ //s、f、g、t、d if(json[k]>num){ num=json[k]; value=k; } } alert("出现最多的字符是:"+value+',出现次数是:'+num); }; max(str);
正则的方法
分析:
1.字符串转为数组进行排序,以便正则选出相同的挨在一起的字符
2.通过正则replace()方法的两个参数,来匹配出现最多的字符和数量
var str="sssfgtdfssddfsssfssss"; var num=0; var value=null; function max(){ var new_str=str.split("").sort().join(""); var re=/(\w)\1+/g; //没有\1,re就是一整个排好序的字符串,有了\1就是出现过的有重复的取出来,\1表示跟前面第一个子项是相同的 new_str.replace(re,function($0,$1){ //$0代表取出来重复的一个个整体,如[s,s...],[f,f..],[d,d....] $1代表这个整体里的字符 if(num<$0.length){ num=$0.length; value=$1 } }); alert(value+":"+num) }; max(str);
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- APM亚流新世代《一起冒险》[320K/MP3][68.66MB]
- FIM《天伦乐》(DaydreamsAndLullabies)24K金碟[WAV+CUE]
- 【雨果唱片】中国管弦乐《鹿回头》
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO