练习002:判断一个字符串出现次数最多的字符,统计这个次数
【知识点】
(1)Array对象API:includes()、push()
(2)String对象API:match()
(3)RegExp对象API:test()
【工具】
(1) visual studio code代码编辑器
(2)Chrome浏览器
【代码】
<script>
/*
描述:判断一个字符串出现次数最多的字符,统计这个次数功能
参数:str--字符串
返回值:数组--数组第一个元素是最大字符出现次数,之后是出现最多次数的字符
*/
function mostChar(str) {
//存储字符串中出现的不同的字符
var charArr = [];
//存放不同的字符对应的出现次数,键key为字符,值value为字符出现的次数
var charObj = {};
//存放出现次数最多的字符,存在字符出现次数相等的可能,所以使用数组存储
var mostArr = [];
//记录字符出现最多次数的数
var most = 0;
for (var i = 0; i < str.length; i++) {
//如果数组charArr中没有字符str[i],并且字符str[i]是字母/数字/中文
if (!charArr.includes(str[i]) && /[a-zA-Z0-9\u4E00-\u9FA5]/.test(str[i]))
//将字符str[i]添加到数组charArr
charArr.push(str[i]);
}
for (var i = 0; i < charArr.length; i++) {
//获取字符在字符串中出现的次数
let count = str.match(new RegExp(charArr[i], 'g')).length;
//以字符为键,次数为值,存入对象charObj中
charObj[charArr[i]] = count;
//在该循环中获得做大的次数数
if (most < count) most = count;
}
//存入最大的次数 数
mostArr.push(most)
for (var key in charObj) {
//如果字符的次数为最大次数 数
if (charObj[key] == most) {
//存入数组mostArr
mostArr.push(key)
}
}
return mostArr;
}
/*
功能测试
*/
var str1 = 'Good Good Study, Day Day Up.';
console.log(mostChar(str1)); //输出:[4, "o"]
var str2 = 'This is a 测试,the 测试号 is ID222222';
console.log(mostChar(str2)); //输出:[6, "2"]
var str3 = '风声雨声读书声声声入耳,家事国事天下事事事关心。';
console.log(mostChar(str3)); //输出:[5, "声", "事"]
</script>
这篇博客介绍了如何使用JavaScript来找出字符串中出现最频繁的字符并计算其出现次数,涉及Array对象的includes()、push()方法,String对象的match()方法,以及RegExp对象的test()方法。同时提到了在Visual Studio Code编辑器和Chrome浏览器中的实践工具。
517

被折叠的 条评论
为什么被折叠?



