总结空思想一字符串或数组中重复字符及次数

Posted ljt1412451704

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结空思想一字符串或数组中重复字符及次数相关的知识,希望对你有一定的参考价值。

以下为“空思想一”,未完待续~~~(欢迎大家留言评论,诚恳与大家共同进步!)
(若发现错误,拜托指正,本人重谢)
null与undefined有很大的区别,知道就行。但是学习不仅在于知道,学以致用才算是自己的。本篇只为"空思想"之引入,以后会
继续更新。敬请期待!有想法的,欢迎回复讨论。可在评论留言互动,可发邮箱([email protected])!
<script>
//【总结】字符串或数组中重复字符及次数
//推荐方法:
//正则方式:1,先把原字符串重复的字符放在一起;2,利用正则分开不重复的字符;3,按重复次数排序。
//常规方法:(原理很重要,深化学习,锻炼思维)
//重复处理:空对象接收,for-if-else。if分支判断不存在,用来导入并初始化(首次出现的值,空对象中不存在,满足条件即执行导入并初始化) ;else分支判断存在,用来累加(遍历后再次出现,就重复了,判断为存在,执行累加过程)。
    //审查结果:空变量存值,for-if。遍历找符合条件的(次数就初始化为0。可理解为,把条件初始化为最不符合条件的值,迭代变量,条件应该有最值),迭代一次,符合条件就修改一次变量值,再找就在判断,直至找到符合条件的就保存下来,迭代继续,以后不在符合条件,就不在修改。
    var str = ‘aaabbbcccaaabbbaaabbbbbbbbbb‘;
// 0123456
var json = {};
for (var i = 0; i < str.length; i++) {
if(!json[str.charAt(i)]){//判断存在 首次i=0,json["a"]不存在,json["a"]=1;
// if(json[str.charAt(i)]===undefined){//==不报错,但提示错,不合规范
json[str.charAt(i)] = 1;
}else{//i=6,json["a"]存在,json["a"]=1,1++=2,json["a"]=2;
json[str.charAt(i)]++;
}
};
var num = 0;//存最多次数 value
var char = ‘‘;//存对应字符 key
for(var key in json){//var key in json
if(json[key]>num){
num= json[key];
char = key;
}
}
alert(‘出现次数最多的是:‘+char+‘,出现‘+num+‘次‘);
// console.log(json);//{a: 9, s: 7, d: 1, f: 1}
// console.log(json["a"]);//9
console.log(‘出现次数最多的是:‘+char+‘,出现‘+num+‘次‘);//9

//推荐方法:
//正则方式:1,先把原字符串重复的字符放在一起;2,利用正则分开不重复的字符;3,按重复次数排序
var s =str;//s=‘aaabbbcccaaabbbaaabbbbbbbbbb‘;
var a = s.split(‘‘);
// console.log(a);//返回一个由s中单个字符组成的数组
a.sort();
s = a.join(‘‘);
// console.log(s);//返回一个由数组a中字符按ASC排序后的字符串
//实现将原字符串按ASC码排序,重复的在一起,重复的ASC码必相等
var pattern = /(\w)\1*/g;//全局匹配相邻重复。必须全局匹配(没有g,匹配一次就结束)。
var ans = s.match(pattern);
console.log(ans);
ans.sort(function(a, b) {//比较器看参数a-b的结果,为正升序,负就降序(不能加括号,传入sort中的是一个回调函数,
将一个函数体作为参数传入另一个函数中反复使用;加括号表示传入的仅仅一个函数执行的返回值)
        return a.length < b.length;//长度降序
// return b.length-a.length;//长度降序
});
console.log(ans);
console.log(ans[0][0] + ‘: ‘ + ans[0].length);

</script>
【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧!

当然也可以“关注”和“收藏”,但我更希望大家能发表评论、互动交流。大家一起探讨学习,效率是不是会更高呢?(要先登录博客园账号哦 )】


















































以上是关于总结空思想一字符串或数组中重复字符及次数的主要内容,如果未能解决你的问题,请参考以下文章

从分解的字符串中删除空数组元素[重复]

2019秋JAVA第三周课程总结及实验报告

亦或思想解决问题--数组中数字出现的次数

JavaScript 代码片段

输入一段字符串,打印出这个字符串中出现过的字符及出现过的次数

输入一段字符串,打印出这个字符串中出现过的字符及出现过的次数