我是一个不太会表达的人,所以我尽可能的用代码来阐释我的理解和思考,废话不多说,我就直接放代码了:
function getStingMax(str){
if(typeof str !== "string"){
alert("请传入string类型的数据")
return
}
let countObj ={},max=[{key:str[0],num:1}];
for(let i=0;i<str.length;i++){
let char=str[i];
countObj[char]=countObj[char]?countObj[char]+1:1;
}
for(let char in countObj){
if(max[0].num<countObj[char]){
max=[];
max[0]={key:char,num:countObj[char]}
}else if(max[0].num===countObj[char]){
max.push({key:char,num:countObj[char]})
}
}
console.log(max);
return {
max:max
}
}
在这段代码中,我先做了一个参数校验,保证传入的是字符串。然后将外部传入的str进行了计数,并将计数结果放在了countObj中。再对countObj的每个属性进行遍历,找出出现次数最多的字符串合集存入max数组,并把max数组打印出来。最后将得到max数组放在返回对象的max属性中返回出去(用对象返回是为了方便该方法以后的拓展)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。