JS 依照元素出現數量排序

同樣是最近遇到的狀況,需要利用陣列內元素出現的數量進行排序,以下為範例程式:

var array = ["1", "2", "4", "5", "2", "4", "2", "3"];
var str = array.toString();
var filter = [];
var result = [];
document.write("原始陣列:" + array + "<br>");

var get = function (str, tar, arr, tmp) {
    if (str.indexOf(tar) >= 0) {
        tmp = str.slice(str.indexOf(tar) + 1);
        arr.push(tar);
        get(tmp, tar, arr, tmp);
    }
    return arr;
}

for (i in array) {
    var elm = [];
    var tmp;
    var fstr = filter.join();
    if (fstr.indexOf(array[i]) >= 0) {
        continue;
    } else {
        var tmp_arr = get(str, array[i], elm, tmp);
        result.push(tmp_arr.length + ':' + tmp_arr[0]);
        filter.push(array[i]);
    }
}

result.sort();
result.reverse();

//按照出現次數排序,不刪除重複元素
var finishArray = [];

for (index in result) {
    var show = result[index].split(':');
    for (i = 0; i < show[0]; i++) {
        finishArray.push(show[1]);
    }
}
document.write("按出現次數排序,不刪除重複元素:" + finishArray + "<br>");

//按照出現次數排序,刪除重複元素
var finishArray = [];
for (index in result) {
    var show = result[index].split(':');
    finishArray.push(show[1]);
}
document.write("按出現次數排序,刪除重複元素:" + finishArray + "<br>");

輸出結果:

原始陣列:1,2,4,5,2,4,2,3
按出現次數排序,不刪除重複元素:2,2,2,4,4,5,3,1
按出現次數排序,刪除重複元素:2,4,5,3,1

You may also like...

1,672,265 Responses

  1. Danieljek表示:

    amoxicillin order online no prescription http://priligymaxpharm.com/# buy priligy

  2. Danieljek表示:

    over the counter amoxicillin canada http://amoxilcompharm.com/# amoxicillin 775 mg

  3. I think the admin of this website is in fact working hard
    in favor of his site, since here every information is quality based information.

  4. Dereketerm表示:

    amoxicillin 500 mg where to buy: Amoxicillin buy online – amoxicillin 500 mg brand name

  5. Danieljek表示:

    amoxil generic https://prednisoneraypharm.com/# order prednisone on line

  6. Hey there just wanted to give you a quick heads up.
    The words in your content seem to be running off the screen in Internet explorer.
    I’m not sure if this is a formatting issue or something
    to do with internet browser compatibility but I thought I’d post to let you know.

    The design and style look great though! Hope you get the problem solved soon. Many
    thanks

  7. kra16.cc表示:

    If some one wants expert view concerning blogging and
    site-building after that i suggest him/her to visit this website, Keep up the
    nice job.

  8. LLC表示:

    Very quickly this site will be famous amid all blog visitors, due
    to it’s pleasant content

  9. BrandenSlomy表示:

    can you get clomid without dr prescription: generic clomid – how to get generic clomid online

  10. StevenNub表示:

    Priligy tablets: buy priligy max pharm – buy priligy

  11. Ten Ways To Build Your Double Glazing Bromley Empire bromley door Company; clashofcryptos.trade,

  12. Danieljek表示:

    can we buy amoxcillin 500mg on ebay without prescription http://amoxilcompharm.com/# amoxicillin 500 mg capsule

  13. michaellef表示:

    Охотно принимаю. На мой взгляд, это актуально, буду принимать участие в обсуждении. Вместе мы сможем прийти к правильному ответу. Я уверен.
    Они прикладываются к портфолио и демонстрируются вместе с https://fgosonline.ru/olimpiady/po-angliyskomu-yazyku/angliyskij-yazyk-8-klass/ ним аттестационной комиссии. повторное первое, второе, третье место, место лауреата или участника.

  14. Danieljek表示:

    amoxicillin 500 mg where to buy https://clomidrexpharm.com/# where can i get cheap clomid for sale

  15. zenitbet1.com表示:

    Букмекерская компания Зенит известна своими выгодными коэффициентами и акциями для игроков. Платформа работает с акцентом на прозрачность и доверие.

  16. I’m gone to say to my little brother, that he should also pay a quick visit this webpage on regular basis to get updated
    from hottest news.

發佈回覆給「Diplomi_yxEa」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。