第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于一道面試題,js中查找字符串中出現(xiàn)次數(shù)最多的字符

關(guān)于一道面試題,js中查找字符串中出現(xiàn)次數(shù)最多的字符

慕運(yùn)維8079593 2019-03-21 18:15:53
<script>var str = "zhaochucichuzuiduodezifu";var o = {};for (var i = 0, length = str.length; i < length; i++) {// var char = str[i];var char = str.charAt(i);if (o[char]) { //char就是對(duì)象o的一個(gè)屬性,o[char]是屬性值,o[char]控制出現(xiàn)的次數(shù)o[char]++; //次數(shù)加1} else {o[char] = 1; //若第一次出現(xiàn),次數(shù)記為1}}console.log(o); //輸出的是完整的對(duì)象,記錄著每一個(gè)字符及其出現(xiàn)的次數(shù)//遍歷對(duì)象,找到出現(xiàn)次數(shù)最多的字符和次數(shù)var max = 0;var maxChar = null;for (var key in o) {if (max < o[key]) {max = o[key]; //max始終儲(chǔ)存次數(shù)最大的那個(gè)maxChar = key; //那么對(duì)應(yīng)的字符就是當(dāng)前的key}}console.log("最多的字符是" + maxChar);console.log("出現(xiàn)的次數(shù)是" + max);</script>網(wǎng)上找到的一種方法 其中 if (o[char]) 這里沒看懂。如果單純的輸出o[char]肯定為什么undefined執(zhí)行了else使他為1然后執(zhí)行 也只執(zhí)行一次。 為什么最后會(huì)輸出一個(gè)0的對(duì)象著實(shí)不明白。這個(gè)key vaule是這么加入到這個(gè)對(duì)象里的
查看完整描述

5 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

o[char]就是記錄每個(gè)元素出現(xiàn)的次數(shù)的。
例如第一個(gè)元素是a,走到這里 o['a']是undefined 那就會(huì)走else o['a'] = 1,記錄一次。
后面再有元素的a的話 o['a'] 就為真了 走if o['a']++,次數(shù)就會(huì)增加一次了!

查看完整回答
反對(duì) 回復(fù) 2019-04-14
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

要理解下js的對(duì)象,是{key,value}的關(guān)系的,如果key不存在, 則o.key就是undefined(if判斷里面就是false), 如果存在o.key,對(duì)應(yīng)的數(shù)據(jù)就是value。 而o.key = 1的意思就是給o添加一個(gè)key,對(duì)應(yīng)的值是1.

拿第一次說(shuō),o['z'],就是o.z 肯定是undefined,就到了else 分支,之后o.z就等于1。下次再碰到'z'字符串,就到了次數(shù)加1的分支


if (o[char]) { 

o[char]++; //次數(shù)加1

} else {

o[char] = 1; //若第一次出現(xiàn),次數(shù)記為1

}


查看完整回答
反對(duì) 回復(fù) 2019-04-14
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

var str = "zhaochucichuzuiduodezifu";

var strCounter = {};

var maxCount = 0;

var resC = '';

for (var i in str) {

    var c = str[i];

    strCounter[c] ? strCounter[c]++ : (strCounter[c] = 1);

    if (strCounter[c] > maxCount) {

        maxCount = strCounter[c];

        resC = c;

    }

}


console.log('strCount', strCounter);

console.log('resC', resC);


查看完整回答
反對(duì) 回復(fù) 2019-04-14
?
慕容3067478

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊

//判斷一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,并統(tǒng)計(jì)這個(gè)次數(shù)

        var str = 'asdsdddd';

        console.log(str)

        var obj = {};

        for(var i=0;i<str.length;i++){

            var strIndex = str.charAt(i);

            if(obj[strIndex]){

                obj[strIndex]++;

            }else{

                obj[strIndex] = 1;

            }

        }

        console.log(obj)

        var max = 0;

        for(var key in obj){

            if(max < obj[key]){

                max = obj[key]

            }

        }

        for(var key in obj){

            if(obj[key] == max){

                console.log('出現(xiàn)次數(shù)最多的是'+key);

                console.log('次數(shù)是'+max);

            }

        }


查看完整回答
反對(duì) 回復(fù) 2019-04-14
?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

function countMaxStr(str){

    var o = {}

    str.split('').forEach(item=>{

        if(item in o){

            o[item]++

        }

        else {

            o[item] = 1

        }

    })

    return sortObj(o)

}


function sortObj(obj){

    var arr = []

    for(var key in obj){

        arr.push({

            key:key,

            value:obj[key]

        })

    }

    arr.sort((a,b)=>{

        return a.value > b.value

    })

    return arr.pop()

}


console.log(countMaxStr("121313fefefrg"))


查看完整回答
反對(duì) 回復(fù) 2019-04-14
  • 5 回答
  • 0 關(guān)注
  • 1453 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)