JS找出一个字符串中出现最多的字符以及次数
使用js找出某个字符串中出现最多的字符以及次数
·
1.统计一个字符串中某个字符出现的次数?
function sum(str, a) {
let b = str.indexOf(a);
var num = 0;
while (b !== -1) {
console.log(b);
num++;
b = str.indexOf(a, b + 1)
}
return num;
}
2.找出一个字符串中,出现次数最多的字符,出现多少次?
第一种:
var str = 'asdasddsfdsfadsfdghdadsdfdgdasd'
str = str.split('');
console.log(str);
var newStr = {};
// 数组去重 和计算出现的次数
str.forEach(function (item) {
if (newStr[item]) {
newStr[item]++;
} else {
newStr[item] = 1;
}
})
var max=0;
var strkey=null;
for(var key in newStr){
if(newStr[key]>max){
max=newStr[key];
strkey=key;
}
}
console.log("最多的字符是" + strkey);
console.log("出现的次数是" + max);
第二种:
let str = "abcdaaaaaaaa";
/* 我们可以先定义一个对象来统计一下出现最多的字符以及次数 */
let obj = {}
/* 利用for循环我们可以将str的每个字符都拿到 */
for (let i = 0; i < str.length; i++) {
// 此处用到了 in 这个关键字 它的用法就是 查看前者是否在后者中存在
if (str[i] in obj) {
obj[str[i]]++
} else {
obj[str[i]] = 1
}
}
/* 那么我们打印一下这个obj是啥 */
console.log(obj) // {a: 9, b: 1, c: 1, d: 1}
/* 这里我们需要用到一个变量MAX来跟该对象里的值比较 */
let MAX = 0
let MAX_Obj = {}
for (let key in obj) {
if (obj[key] > MAX) {
MAX = obj[key]
MAX_Obj = {
value: key,
count: MAX
}
}
}
console.log(MAX_Obj); // 出现最多的为a 出现次数为 9
更多推荐
已为社区贡献1条内容
所有评论(0)