js查找字符串中最频繁的字符

js查找字符串中最频繁的字符
在一个字符串,这样as'zhaochucichuzuiduodezifu ',我们要找出最重要的人物。这篇文章将解释思维的具体方法
首先,介绍两字符串对象:indexOf()和charAt()方法
IndexOf()方法介绍,返回指定字符串值的字符串中的第一次的位置
charAt()方法介绍返回指定位置的字符
首先,做一个小测试,发现each'i'in的string'woainixiaoli位置。
var arr = 'woainixiaoli;
var索引= 1;定义变量索引控制索引
当 / /看不到一个,即()返回值是1,周期结束
{做
指数=(我arr.indexof,指数+ 1); / /使用指数+ 1控制第二参数,每一个搜索从搜索指数的下一个字符位置开始
如果(索引)!= 1)可以找到{字符集
console.log(指数); / /输出位置
}
}(索引)!= 1);
在上面的代码运行之后,控制台输出是

输入标题,string'zhaochucichuzuiduodezifu的人物
方法1:使用数组(有一个缺点,当最大字符数大于一个时,只能找到一个)。
var str =zhaochucichuzuiduodezifu ;
var arr = {}; / /定义一个新的数组
遍历字符串循环
对于(var i = 0,长度= str.length;i <长度;i++){
var指数= 1;
var j=0;
查找每个字符
{做
指数= str.indexof(STR {我},指数+ 1);
如果(索引)!= 1){
++;
}
}(索引)!= 1);
ARR { } = {我},STR; / / str中的字符的字符串赋给数组数组索引J数据,当多个周期后,会出现重复作业的现象,
赋值后,将改写任务,但不影响我们找出最多的字符。
}
console.log(ARR);
console.log(的最大特点是{ 1 } arr.length + ARR);
console.log(数+(arr.length - 1));
在上面的代码运行之后,控制台输出的结果如下:

正如你可以看到从输出数组arr,此方法将相同数量的字符只能显示2个字符,如果出现次数相同的最大数,这种方法只能得到一个。在此基础上,参考下对象的解决方法。
方法二:使用对象(推荐
var str =zhaochucichuzuiduodezifu ;
var;
对于(var i = 0,长度= str.length;i <长度;i++){
字符集;
变量字符= str.charat(我);
如果(o { } }){ char是对象O的属性,则o }是属性值,则出现O * } }控件的次数。
1;
{人}
o } = 1;如果出现第一个,记录数为1
}
}
console.log(O); / /输出是一个完整的对象,记录每个字符的时候,
遍历对象,查找最高字符数和次数。
var max=0;
无功maxchar = null;
为(O VAR键){
如果(max < { } }){
最大存储次数最多的max =
maxchar = / /关键;然后对应的字符是目前的关键
}
}
console.log(的最大特点是+ maxchar );
console.log(次数+最大);
在上面的代码运行之后,控制台输出的结果如下:
该方法解决了方法1的问题,可以清晰地记录每个字符的次数。当有两次相同的字符,我们可以清楚地看到在对象。
然而,仍有不足,不能直接输出的字符数量最高的同时,也需要更多的判断条件。完美的代码如下(一_哈O O)
var str =nininihaoa ;
var;
对于(var i = 0,长度= str.length;i <长度;i++){
变量字符= str.charat(我);
如果(o { }){
O {字符} + +; / /增加1倍
{人}
o } = 1;如果出现第一个,记录数为1
}
}
console.log(O); / /输出是一个完整的对象,记录每个字符的时候,
查找数字对象遍历,最大字符数
var max=0;
对于(var在o中){
如果(max < { } }){
最大存储次数最多的max =
}
}
对于(var在o中){
如果(O {key} = = max){
/ / console.log(关键);
console.log(的最大特点是+键);
console.log(次数+最大);
}
}
结果如下:
以上是最为常见的js字符串搜索萧边介绍的人物。希望能对你有所帮助。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部