教你JavaScript利用charAt()統(tǒng)計(jì)出現(xiàn)次數(shù)最多的字符和次數(shù)
之前給大家介紹過簡介JavaScript中charAt()方法的使用,今天通過本文給大家分享js統(tǒng)計(jì)次數(shù)最多的字符和次數(shù)的實(shí)例代碼,具體內(nèi)容如下所示:
判斷一個(gè)字符串'aabcdobdackoppz'中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計(jì)其次數(shù)
首先我們需要了解一個(gè)知識(shí)點(diǎn):(如何判斷對(duì)象里有該屬性)
// 有一個(gè)對(duì)象,來判斷是否有該屬性 // 寫法:對(duì)象['屬性名'] var o = { age : 18 , sex : '男' } if(o['sex']){ console.log('里面有該屬性'); } else { console.log('沒有該屬性'); }
核心算法:
1.我們可以利用 charAt() 這個(gè)方法來遍歷這個(gè)字符串。
2.把每個(gè)字符都存儲(chǔ)給對(duì)象,如果對(duì)象沒有該屬性,就給它賦值1,如果存在該屬性了就加1。
3.遍歷對(duì)象 , 得到最大值和出現(xiàn)次數(shù)。
1.利用charAt方法遍歷數(shù)組 'aabcdobdackoppz' (可以理解為把值存到對(duì)象obj里面)
<script> var str = 'aabcdobdackoppz' ; var obj = {} ; for(var i = 0 ; i < str.length ; i++){ var chars = str.charAt(i) // chars 是 字符串的每一個(gè)字符 if(obj[chars]){ // o[chars] 得到的是屬性 obj[chars]++ } else { obj[chars] = 1 ; } } console.log(obj); </script>
此時(shí)已經(jīng)把值存在obj對(duì)象里了
2.接下來只需要遍歷對(duì)象得到最大值和出現(xiàn)次數(shù)
<script> //遍歷對(duì)象 var max = 0; var ch = ''; for (var k in obj) { // 遍歷對(duì)象需要使用 for in // k 得到的是屬性名,obj[k]得到的是屬性值 // 此處的屬性名k 只有在循環(huán)中才有用 , 所以我們需要?jiǎng)?chuàng)建一個(gè) ch 來存儲(chǔ) k if (obj[k] > max) { max = obj[k]; ch = k; } } console.log( ch + '出現(xiàn)次數(shù)最多' + '次數(shù)為:' + max); </script>
總結(jié):我們可以理解為所有字符都先執(zhí)行了obj[chars]=1,相當(dāng)于創(chuàng)建了對(duì)象,然后再判斷是否已經(jīng)存在對(duì)象。
到此這篇關(guān)于JavaScript利用charAt()統(tǒng)計(jì)出現(xiàn)次數(shù)最多的字符和次數(shù)的文章就介紹到這了,更多相關(guān)js統(tǒng)計(jì)次數(shù)最多的字符和次數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)input的賦值小結(jié)
這篇文章主要介紹了js實(shí)現(xiàn)input的賦值問題小結(jié),在實(shí)際的開發(fā)中,為了頁面的美觀,可能用到一些框架,比如EasyUI框架,文中介紹了easyui的input框賦值代碼,感興趣的朋友一起看看吧2023-12-12Popup彈出框添加數(shù)據(jù)實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了Popup彈出框添加數(shù)據(jù)的簡單實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10JS驗(yàn)證日期的格式Y(jié)YYY-mm-dd 具體實(shí)現(xiàn)
這篇文章介紹了JS對(duì)日期格式的驗(yàn)證實(shí)例,有需要的朋友可以參考一下2013-06-06使用控制臺(tái)破解百小度一個(gè)月只準(zhǔn)改一次名字
這篇文章主要介紹了使用控制臺(tái)破解百小度一個(gè)月只準(zhǔn)改一次名字的方法和代碼,有需要的小伙伴可以參考下。2015-08-08