javascript读取出字符串中每个字符出现次数
来源:互联网 发布:广东联合电服数据科技 编辑:程序博客网 时间:2024/05/19 08:24
检测字符出现次数
如字符串arr=”abcdaabc”,请用js读取出arr字符串中每个字母重复出现的次数分别是多少?
- 方法一
var arr = 'abcdaabc';var info = arr .split('') .reduce((p, k) => (p[k]++ || (p[k] = 1), p), {});console.log(info); //{ a: 3, b: 2, c: 2, d: 1 }
- 方法二
reduce不兼容低版本
var temp = {}; 'abcdaabc'.replace(/(\w{1})/g,function($1){ temp[$1] ? temp[$1]+=1 : temp[$1] = 1; }) console.log(temp) // {a: 3, b: 2, c: 2, d: 1}
- 方法三
var obj = {}'abcdaabc efgh'.replace(/(\w)/g,function(word,p){ obj[p[0]] ? obj[p[0]]+=1 : obj[p[0]] =1 })console.log(obj)
- 方法四
var obj = {};'abcdaabc'.split('').sort().join('').replace(/(.)(\1+)?/g, function(m,k){obj[k] = m.length});console.log(obj); // {a: 3, b: 2, c: 2, d: 1}
- 方法五
const arr="abcdaabc";let counter = {};for (let i = 0, len = arr.length; i < len; i++ ) { counter[arr[i]] ? counter[arr[i]]++ : counter[arr[i]] = 1;}console.log(counter);
- 方法六
var arr="abcdaabc"var count = {};var i,kfor(i=0;i<arr.length;i++){ var chr = arr.charAt(i); if( typeof count[chr] === "undefined"){ count[chr] = 1; }else{ count[chr]++; }}console.log(count)for(k in count){ if(count.hasOwnProperty(k)){ console.log("%s:%d",k,count[k]); }}
- 方法七
var str = "addbsnjfsss";var strArray = str.split("");var returnObj = {};for(var i = 0; i < strArray.length; i++) { if(returnObj[strArray[i]]) { returnObj[strArray[i]] = parseInt(returnObj[strArray[i]]) + 1; } else { returnObj[strArray[i]] = 1; }}for(var p in returnObj) { console.log(p + " : " + returnObj[p]);}
- 方法八
var str = 'abcdacbacxjkl';var Counter = new Counter();Counter.count(str); console.log(Counter.getResult()); //{a: 3, b: 2, c: 3, d: 1, x: 1…}function Counter() { var temp = {}; var push = function(item) { temp[item] = temp[item] ? ++temp[item] : 1; } this.count = function(str) { str.split('').forEach( function(item) { push(item); }); } this.getResult = function() { return temp; }}
- 方法九
var str = "aaaabbbccccddfgh";var o={};for(var i=0;i<str.length;i++){ var key = str.charAt(i); if(o[key] && o[key].value==key) { o[key].count+=1; } else{ o[key]={}; o[key].value=key; o[key].count=1; }};for(key in o){ console.log(o[key].value+'='+o[key].count);};
- 方法十
var str = 'abcdaabc';var result = {};str.split('').forEach(function (char) { var val = result[char]; result[char] = val ? ++val : 1;}); console.log(result);
- 方法十一
用replace
function getSameWordCount(str) { var count = {}; if (typeof str !== 'string') { return count; } while (str) { var originCount = str.length; var char = str.charAt(0); var charCount = (str = str.replace(new RegExp(char, 'g'), '')).length; count[char] = originCount - charCount; } return count;}
- 方法十二
findIndexE6规范
var arr = 'absdakbsabdabsab';var _ss = arr.split('');var _aa = [];_ss.map(function(e){ var _find = findChar(e); if(_find !== -1) _aa[_find].num++; else _aa.push({code:e,num:1});})function findChar(c){ return _aa.findIndex(function(ele,index){ if(ele.code === c) return true; })}
- 方法十三
效率更高的二叉树
var str='sadzewrwewasdfaxzvzxfasdaswe';function count(s, e){ if(s>e) { return {}; } else if(s==e) { var x=str.charAt(s); var json={}; json[x]=1; return json; } var c=Math.floor((s+e)/2); var l=count(s, c); var r=count(c+1, e); var result=l; for(var i in r) { if(result[i]) { result[i]+=r[i]; } else { result[i]=r[i]; } } return result;}console.log(count(0, str.length-1));
- 方法十四
var str="dfjkfkhsdjk hksjh", i=0, obj={}; for(i=0;i<str.length;i++) { var ch=str.charAt(i); if (!obj[ch]) { obj[ch]=1; } else{ obj[ch]++; } } for(var r in obj) { console.log(r+","+obj[r]); }
- 方法十五
在字符串的前提条件下,对字符进行排序,使用字符串的lastIndexOf或数组的lastIndexOf方法是一个思路,可以减少查询次数。
var str = "aasdkfjwoensweljoipwefslnvxcvasfs";str = str.split('').sort().join('');var result = {}for(var i = 0, j = str.length; i < j; i++){ var char = str[i]; result[char] = str.lastIndexOf(char) - i + 1; i = str.lastIndexOf(char)}console.table(result);
另外:
var str = "aasdkfjwoensweljoipwefslnvxcvasfs";str = str.split('').sort().join('');var arr = str.match(/(\w)\1+/g);var result = {}for(var i = 0, j = arr.length; i < j; i++){ var item = arr[i]; result[item.charAt(0)] = item.length;}console.table(result);
- 方法十六
lodash实现
_.countBy('qwertqw eqwq'.replace(/\s+/g,"").split(""), function(str) { return str;});
- 方法十七
function charStats(str) { var visitStats = {}; for (var i = 0; i < str.length; i++) { var char = str[i]; if (!visitStats[char]++) visitStats[char] = 1; } return visitStats;}console.log(charStats('abcdaabc')); // {a: 3, b: 2, c: 2, d: 1}
- 方法十八
function getShowTimes(string,indexChar){ //返回一个字符在字符串中出现的次数 return (string.split(indexChar).length-1); }
- 方法十九
var str = "aabbccf"; var arr = str.split(""); var count = {}; arr.forEach(function(i) { count[i] = (count[i]||0)+1; }); console.log(count);
1 0
- javascript读取出字符串中每个字符出现次数
- 输入一个字符串 打印出每个字符出现的次数
- 计算一个字符串中每个字符出现的次数
- 统计某字符串中每个字符出现的次数
- 判断字符串中每个字符出现的次数
- 统计字符串中每个字符出现的次数
- 统计字符串中每个字符出现的次数
- Dictionary<>练习题:统计字符串中每个字符出现的次数
- 统计字符串中每个字符出现的次数
- 获取字符串中每个字符出现的次数(利用TreeMap)
- 计算字符串中每个字符出现的次数
- 求出该字符串中每个字符出现的次数
- C++统计字符串中每个字符出现的次数
- 统计字符串中每个字符出现的次数
- 求一个字符串中每个字符出现的次数
- hashmap统计字符串中每个字符出现的次数
- 统计一个字符串中每个字符出现的次数
- 获取字符串中每个字符出现的次数
- Myeclipse快捷键记录
- ubuntu-12搭建tftp服务器
- #NOIP 2014# day.2 T2 寻找道路
- Emmet:HTML/CSS代码快速编写神器
- Oracle数据安装与卸载明细
- javascript读取出字符串中每个字符出现次数
- vSphere 配置开机自启动虚拟机
- [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
- Storm高级原语(一) --Transactional topology
- 深度学习资料记载中...
- hoj 4550 卡片游戏
- listview 带轮播的上拉刷新下拉刷新
- 批量删除mongo collections
- 无线测试技能树