检测字符串中出现次数字符最多的字符,并进行排序
第一种方法
var str = 'asdsfsaasddda'; var arr = []; for(var i=0;i<str.length;i++){ var codeStr = str[i]; // 检测数组中是否存在某个元素 var isHas = false; for(var j=0;j<arr.length;j++){ var codeObj = arr[j]; if (codeObj.code == codeStr) { // 如果数组中已经存在该元素,就将其num属性+1 arr[j].num++; isHas = true; break; } } // 如果数组中不存在该元素,就往数组中新添加一个对象{code:XX,num:1} if (isHas == false) { arr.push({code:codeStr,num:1}) } } console.log(arr); // 数组排序 arr.sort(function(a,b){ if (a.num < b.num) { return 1; }else{ return -1 } }) console.log(arr); var maxNnm = arr[0].num; var arr2 = [] for(var i=0;i<arr.length;i++){ if (arr[i].num >= maxNnm) { arr2.push(arr[i]); } } console.log(arr2);
第二种方法
var str = 'ahaihavafsahf'; // 1.统计:字符串中不同字符出现的次数。 // 2.比较:比较哪个字符出现的次数最多。 /* 统计:判断对象中是否存在某个属性 存在:就在原来的次数基础上+1 不存在:首次出现,就给对象添加这个属性,值为1 { a:1+1+1 h:1+1 d:1 i:1 f:1 v:1 s:1 } */ var obj = {}; for(var i=0;i<str.length;i++){ var codeStr = str[i]; // 字符串的某个字符 === 对象的某个属性名 var isHas = false; for(var key in obj){ if (codeStr === key) { isHas = true; // 不是首次出现 obj[key] = obj[key] + 1; break; } } if (isHas == false) { // 第一次出现 obj[codeStr] = 1; } } // 2. 比较大小 var maxNum=0; var maxStr; for(var key in obj){ if (obj[key] > maxNum) { maxNum = obj[key]; maxStr = key; } } console.log(maxStr,maxNum);

浙公网安备 33010602011771号