国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Js查找字符串中出現(xiàn)次數(shù)最多的字符及個數(shù)實例解析

2019-11-20 09:04:54
字體:
供稿:網(wǎng)友

如sssfgtdfssddfsssfssss,出現(xiàn)最多的字符是s,出現(xiàn)了12次

傳統(tǒng)寫法

分析:

1.準(zhǔn)備一個空的json,通過循環(huán)字符串的每個字符來看,如果json里沒有這個字符,就在json里創(chuàng)建一個新的數(shù)組,并把這個字符放進數(shù)組里,如果json里有這個字符,繼續(xù)把字符添加進數(shù)組里,這時循環(huán)完json里有n個數(shù)組

2.找出json里長度最長的數(shù)組,此時長度即個數(shù),而最多的字符就是這個參數(shù),用到for...in...循環(huán)和參數(shù)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,否則只有存在這個字符時才添加。次數(shù)會少一次}for(var attr in json){if(num<json[attr].length){num=json[attr].length;value=json[attr][0];}}alert("出現(xiàn)最多的字符是:"+value+',出現(xiàn)次數(shù)是:'+num);};max(str);

如果不想往json里放東西怎么做呢?

分析:

1.準(zhǔn)備一個空的json,通過循環(huán)字符串的每個字符來看,如果json里沒有這個字符,就把這個字符的數(shù)目設(shè)為1,如果有則數(shù)目++

2.循環(huán)json里的字符,只要存在,就把他的數(shù)目賦給一個變量,并且每次都比較新的字符數(shù)量和這個變量的大小,如果比變量大,則更新變量的值,最后這個變量的值就是最多字符的數(shù)目

而最多的字符就是json里這個字符

var str="sssfgtdfssddfsssfssss";function max(){var json={};for(var i=0;i<str.length;i++){var k=str[i]; //k是所有字符,字符串也跟數(shù)組一樣可以通過中括號下標(biāo)方法取到每個子元素if(json[k]){json[k]++; //json里有這個字符時,把這個字符的數(shù)量+1,}else{json[k]=1; //否則把這個字符的數(shù)量設(shè)為1}}var num=0;var value=null;for(var k in json){ //s、f、g、t、dif(json[k]>num){num=json[k];value=k;}}alert("出現(xiàn)最多的字符是:"+value+',出現(xiàn)次數(shù)是:'+num);};max(str); 

正則的方法

分析:

1.字符串轉(zhuǎn)為數(shù)組進行排序,以便正則選出相同的挨在一起的字符

2.通過正則replace()方法的兩個參數(shù),來匹配出現(xiàn)最多的字符和數(shù)量

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就是出現(xiàn)過的有重復(fù)的取出來,/1表示跟前面第一個子項是相同的new_str.replace(re,function($0,$1){ //$0代表取出來重復(fù)的一個個整體,如[s,s...],[f,f..],[d,d....] $1代表這個整體里的字符if(num<$0.length){num=$0.length;value=$1}});alert(value+":"+num)};max(str);

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太原市| 开江县| 沂水县| 新和县| 贡山| 昌邑市| 屏山县| 岱山县| 尼玛县| 嵊州市| 雅安市| 和硕县| 藁城市| 社会| 和政县| 申扎县| 大埔县| 崇义县| 平顺县| 云南省| 浦东新区| 大庆市| 洛川县| 白玉县| 卢湾区| 无棣县| 禄丰县| 张家界市| 上犹县| 射阳县| 临安市| 墨江| 元朗区| 静宁县| 仪陇县| 汝阳县| 南安市| 城步| 朝阳市| 望谟县| 靖州|