統計字符串
標簽:
JavaScript
一:统计每个字符出现的次数
/* * 统计各个字符出现的次数 * 思路: * 1. 定义一个空对象 * 2. 循环数组,如果对象的key存在,就给这个key的值+1,否则key的值就为1 * */function count(str){ let obj = {} let countArr = [] let result = {} for(let i=0;i<str.length;i++){ obj[str[i]]?obj[str[i]]+=1:obj[str[i]]=1 } return obj }
二:统计出现次数相同的是哪几项
function count(str){ let obj = {} let countArr = [] let result = {} for(let i=0;i<str.length;i++){ obj[str[i]]?obj[str[i]]+=1:obj[str[i]]=1 } for(key in obj){ // 每个字符出现的次数 countArr.push(obj[key]) // 去重后的次数 countArr = [...new Set(countArr)] } for(let i=0;i<countArr.length;i++){ let arr2 = [] for(key in obj){ if(countArr[i]==obj[key]){ arr2.push(key) result[countArr[i]] = arr2 } } } console.log(result) } count(str)
三:统计出现次数最多的字符
/* * 统计出现最多的字符 * 注意:要考虑有多个字符出现次数相同的情况 * 思路: * 1. 首先定义一个对象,统计出所有的字符出现的次数 * 2. 循环该obj,将value===max的找出来,放到一个数组中,再展示出来 * */function maxCount(str){ let obj = {}; let max = 1; let arr = []; for(let i=0;i<str.length;i++){ obj[str[i]]?obj[str[i]]+=1:obj[str[i]]=1 } // 循环得到最多的次数 for(key in obj){ if(max<obj[key]){ max = obj[key] } } for(key in obj){ if(obj[key] === max){ arr.push(key) } } console.log("出现最多的字符是:"+arr + ",出现的次数是:" +max+"次") } maxCount(str)
四:统计指定字符出现的次数
/* * 判断某个字符出现的次数 * 方法一思路: * 先将字符串按照指定字符用split()切割成数组 * 切割后的数组最后一个是不包含该字符的 * 方法二思路: * 用字符串的match()方法 * */方法一:function count1(str,char){ var len = str.split(char).length-1 return len }console.log(count1(str,"j")) 方法二:console.log(("jj222ddd".match(new RegExp("j","g")) || []).length)
五:第一个重复的字符
function firstRepeat(str){ let obj = {} for(let i=0;i<str.length;i++){ obj[str[i]]?obj[str[i]]+=1:obj[str[i]]=1 } for(key in obj){ if(obj[key]<=1){console.log("no repeat!")} if(obj[key]>=2){ console.log("第一个重复的是:"+key); break } } } firstRepeat("112fff4")
作者:椰果粒
链接:https://www.jianshu.com/p/6c3d5c077d0e
點擊查看更多內容
為 TA 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦