统计字符串中每个字母出现的次数

//方法1
function getLetterTimes(str){
    for(var i = 0,hash = {}; i < str.length; i++){
      if(hash[str[i]]){
        hash[str[i]]++;
      }else{
        hash[str[i]]=1;
      }
    }
    return hash;
}
var str = "helloworld";
console.dir(getLetterTimes(str));
//方法2
function getLetterTimes(str){
   var arr=str.split("")
  .sort()
  .join("")
  .match(/([a-z])\1*/g)
  .sort(function(a,b){
        return b.length-a.length; 
    });
  console.log("出现最多的字母是: "+arr[0][0]+",共"+arr[0].length+"次");
  var hash = {};
  arr.forEach(function(val){
    hash[val[0]] = val.length;
  });
  return hash;
}
var str = "helloworld";
console.dir(getLetterTimes(str));
//方法3
function getMaxNumberOfChar(str) {
  return (str + '').split('').reduce(function(pre, cur, index, arr) {
    cur in pre ? pre[cur]++ : (pre[cur] = 1);
    pre[cur] > pre.value && (pre.char = cur, pre.value = pre[cur]);
    return pre;
  }, {value: 0});
}
var result = getMaxNumberOfChar('helloworld'); 
console.log(result);
//方法4
function getMaxNumberOfChar(str) {
  return (str + '').split('').sort().join('').match(/(\w)\1*/g).reduce(function(pre, cur) {
      return cur.length > pre.value ? {value: cur.length, char: cur[0]} : pre;
  }, {value: 0})
}
var result = getMaxNumberOfChar('helloworld'); 
console.log(result);

 

转载于:https://www.cnblogs.com/camille666/archive/2013/04/29/get_str_each_letter_times.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值