统计字符串中每个字符出现的次数
题目:
统计一个字符串中每个字符出现的次数,并返回出现次数最多的字母以及相应次数
解答:
利用reduce函数,将每个字符看成一个空箱子,遍历到就把值传到空箱子中,最后判断出空箱子里有多少
var str="helloworld";
var arr=str.split("");
var result=arr.reduce(
function(prev,elem){
//到这个数时为这个数添加1次
if(prev[elem]===undefined){
prev[elem]=1;
}else{
prev[elem]+=1;
}
return prev;
},
{}
)
var char,count;
//遍历result中每个成员
for(var key in result){
//第一遍如果没有
if(char===undefined){
char=key;
count=result[key];
}else{
//否则,开始作比较
if(result[key]>count){
char=key;
count=result[key];
}
}
}
console.log(`${char}出现次数最多,共出现${count}次`);
function strNum(str){
let obj = {};
for(let i=0;i<str.length;i++){
let value = str.charAt(i)
if(obj[value]){
obj[value]++
}else{
obj[value] = 1
}
}
let word = null
let temp = 0
for(let key in obj){
if(obj[key]>temp){
temp = obj[key]
word = key
}
}
return [word, temp].join(' ')
}
console.log(strNum('helloword'));
return返回多个值
- return {a,b,c}
- return [a,b,c]
知识点:reduce()、循环