js简单的面试题:找出字符串中出现次数最多的字符

简单的对象赋值法

    let testStr = 'adsadafgxzcnvzbsadadadsaddd';
        function getMax(str) {
            debugger;
            let obj = {};
            for(let i in str) {
                if(obj[str[i]]) {
                    obj[str[i]]++;
                }else{
                    obj[str[i]] = 1;
                }
            }
            let keys = Object.keys(obj); // 获取对象中所有key的值返回数组
            let values = Object.values(obj); // 获取所有value返回数组
            let maxVal = Math.max(...values);
            // Math.max可以找出传入参数的最大值,如:Math.max(1,2);这里可使用es6中的解构,也可以使用Math.max.apply(Math,values)可认为是apply(Math.max, arr) 然后,arr是一个参数列表,对于max方法,其参数是若干个数,即Math.max(a, b, c, d, ...)
            console.log(keys[values.indexOf(maxVal)],maxVal);
        }
        getMax(testStr);

正则

	let testStr = 'adsadafgxzcnvzbsadadadsaddd';
    let stringMax = (str) => {
        debugger;
            str = str.split('').sort().join('');
            var s = str.match(/(\w)\1*/g); //主要的是这个步骤
            if(s === null) {
                return str[0];
            }
            var out = s.sort((a,b) =>b.length - a.length);
            console.log(out[0][0],out[0].length);
        };
        stringMax(testStr)
发布了54 篇原创文章 · 获赞 34 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/wen_binobject/article/details/89371796