按照顺序压缩统计过 str=“aaaabbbcccddaa”的结果为a4b3c3d2a2
var cm = new charMap();
function charMap(str){
this.datas = {};
this.sum=function(){
$.each(str,function(i,n){
if(this.datas.n == null){
this.datas.n =1;
}else{
this.datas.n =this.datas.n+1;
}
});
}
this.toString=function(){
var strs ="";
$.each(this.datas,function(i,n){
strs=strs+i+n;
});
}
}
大概方法就是这样 ,随便手打的,细节再处理下就行。
var c,kv={},str="aaaabbbcccddaa";
for(var i=0,j=str.length;i<j;i++)kv[c=str.charAt(i)]=(kv[c]||0)+1;
console.log(kv)
最简单的方法
var str = "aaaabbbcccddaa";
str = str.replace(/(\w)\1+/g,(s,a)=>a+s.length);
console.log(str);