为了账号安全,请及时绑定邮箱和手机立即绑定

面试题:用js实现读取出字符串中每个字符重复出现的次数?

标签:
Html/CSS

如字符串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 }

</br>
坐等更好方案:
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 }
</br>
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}
</br>
var obj = {}
'abcdaabc efgh'.replace(/(\w)/g,function(word,p){
obj[p[0]] ? obj[p[0]]+=1 : obj[p[0]] =1
})
console.log(obj)
</br>
</br>
var arr="abcdaabc"
var count = {};
var i,k

for(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]);
}
}
</br>
</br>
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]);
}
</br>
</br>
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;
}

}
</br>
</br>
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));

</br>
</br>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
37
获赞与收藏
165

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 1
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消