亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js計算數組中元素出現的次數,并實現去重

js計算數組中元素出現的次數,并實現去重

達令說 2019-02-13 14:12:53
希望最后能得到去重的數組,和每一個元素出現的次數
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

如果期望排序根據數值el來的話使用這個:
把count改成el即可!

https://img1.sycdn.imooc.com//5c6648960001822404010117.jpg

function getCount(arr, rank,ranktype){ 

    var obj = {}, k, arr1 = [];

    for (var i = 0, len = arr.length; i < len; i++) {

        k = arr[i];

        if (obj[k]) 

            obj[k]++;

        else 

            obj[k] = 1;

    }

    //保存結果{el-'元素',count-出現次數}

    for (var o in obj) {

        arr1.push({el: o, count: obj[o]});

    }

    //排序(降序)

    arr1.sort(function (n1, n2) {

        return n2.el - n1.el

    });

    //如果ranktype為1,則為升序,反轉數組

    if(ranktype===1){

        arr1=arr1.reverse();

    }

    var rank1 = rank || arr1.length;

    return arr1.slice(0,rank1);

}


getCount([2,2,3,1],null,1)//傳參(ranktype=1,rank=null),升序返回所有元素出現次數

function getCount(arr, rank,ranktype){ 

    var obj = {}, k, arr1 = [];

    for (var i = 0, len = arr.length; i < len; i++) {

        k = arr[i];

        if (obj[k]) 

            obj[k]++;

        else 

            obj[k] = 1;

    }

    //保存結果{el-'元素',count-出現次數}

    for (var o in obj) {

        arr1.push({el: o, count: obj[o]});

    }

    //排序(降序)

    arr1.sort(function (n1, n2) {

        return n2.count - n1.count

    });

    //如果ranktype為1,則為升序,反轉數組

    if(ranktype===1){

        arr1=arr1.reverse();

    }

    var rank1 = rank || arr1.length;

    return arr1.slice(0,rank1);

}


getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2])//默認情況,返回所有元素出現的次數

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],3)//傳參(rank=3),只返回出現次數排序前三的

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],null,1)//傳參(ranktype=1,rank=null),升序返回所有元素出現次數

getCount([1,2,3,1,2,5,2,4,1,2,6,2,1,3,2],3,1)//傳參(rank=3,ranktype=1),只返回出現次數排序(升序)前三的


查看完整回答
反對 回復 2019-02-15
  • 1 回答
  • 0 關注
  • 817 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號