编辑代码

let str="lkjflsjgajflkgjeajglasdkjoaegjalsdkgjalskj";

function frequency(str){
    let obj=str.split("").reduce((total,a)=>{
        if(!total[a]){
            total[a]=1;
        }else{
            total[a]+=1;
        }
        return total;
    },{})
    let s=Object.keys(obj).reduce((a,b)=>obj[a]>obj[b]?a:b)
    return [s,obj[s]];
}
console.log("出现次数最多的字符:",frequency(str))
function frequencyMap(str){
    let map=str.split("").reduce((map,a)=>{
        if(map.has(a)){
            map.set(a,map.get(a)+1);
        }else{
            map.set(a,1)
        }
        return map
    },new Map())
    return [...map.entries()].reduce((a,e)=> a[1]>e[1]?a:e)
}
console.log("出现次数最多的字符:",frequencyMap(str))
function generate(str){
    let obj=str.split("").reduce((total,a)=>{
        if(!total[a]){
            total[a]=1;
        }else{
            total[a]+=1;
        }
        return total;
    },{})
    return (way)=>{
        if(way=="most"){
            let s=Object.keys(obj).reduce((a,b)=>obj[a]>obj[b]?a:b)
            return [s,obj[s]];
        }
        if(way=="least"){
            let s=Object.keys(obj).reduce((a,b)=>obj[a]<obj[b]?a:b)
            return [s,obj[s]];
        }
        if(way=="self"){
            return obj;
        }
    }
}
let fun=generate(str)
console.log("出现次数最多的字符串",fun('most'))
console.log("出现次数最少的字符串",fun('least'))
console.log("出现的字符串统计",fun('self'))