前端试题-js判断字符串中出现次数最多的字符及统计次数

两种做法,一种把相同字符放在json对象数组里

//把相同字符放在json对象里
function test(str){
  var obj = {};
  var num = 0;
  var value = '';
  for (var i = 0; i < str.length; i++){
    if (!obj[str[i]])
       obj[str[i]] = [];
    obj[str[i]].push(str[i]);
  }
  for (var attr in obj){
    if (num < obj[attr].length){
      num = obj[attr].length;
      value = obj[attr][0];
    }
  }
  return '最多的字符是:' + value + ', 出现了:' + num + '次.';
}

var str = 'jogaetagdagih8hdfgaga';
test(str);


另一种是用正则表达式来做

function test(str){
  var arr = str.split('');
  arr.sort();
  str = arr.join('');
  var re = /(w)1+/g;
  var num = 0;
  var value = 0;
  str.replace(re, function($0, $1){
    if (num < $0.length) {
      num = $0.length;
      value = $1;
    }
  });
  return '最多的字符是:' + value + ', 出现了:' + num + '次.' ;
}

var str = 'jogaetagdagih8hdfgaga';
alert(test(str));

原文地址:https://www.cnblogs.com/sunshinegirl-7/p/5213213.html