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,629,633 Responses

  1. prinz umzüge表示:

    prinz umzüge

    That is a good tip especially to those new to the blogosphere.
    Short but very accurate information… Thanks for sharing this one.
    A must read article!

  2. dianabol hap fiyatları

    Greetings! Very helpful advice in this particular article!
    It’s the little changes that make the most important changes.
    Many thanks for sharing!

  3. StevenNub表示:

    priligy: buy priligy max pharm – priligy maxpharm

  4. I love your blog.. very nice colors & theme. Did you create this website yourself or did
    you hire someone to do it for you? Plz respond as I’m looking to
    create my own blog and would like to find out where
    u got this from. thanks

  5. Danieljek表示:

    amoxicillin 500 mg tablet price https://amoxilcompharm.com/# cheap amoxicillin 500mg

  6. Ваш лазерный принтера требует перезарядки картриджа? Превратите растраты на новые картриджи в экономию с нашей услугой по заправке картриджей принетов в Украине!

    Наша команда специалистов гарантирует высококачественное обслуживание вашего принтера или МФУ, используя только высококачественные расходные материалы. Забудьте о незаконченных печатных заданиях и затраты покупая новые картриджи – с нами вы экономите свои финансы!

    Заправить картридж лазерного принтера Киев – https://printershub.com.ua/ru/zapravka-kartridzha

    Не теряйте время и финансы – доверьтесь профессионалам от PrintersHub!

  7. Danieljek表示:

    generic for amoxicillin http://prednisoneraypharm.com/# generic prednisone otc

  8. Great blog here! Also your web site loads up very fast!

    What host are you using? Can I get your affiliate link to your host?

    I wish my web site loaded up as fast as yours lol

    http://w7.syairtogel.monster/

  9. BrandenSlomy表示:

    priligy max pharm: priligy max pharm – priligy

  10. Danieljek表示:

    amoxicillin for sale online http://priligymaxpharm.com/# priligy

  11. 61saat.com表示:

    Kanuna aykırı ve izinsiz olarak kopyalanamaz, başka yerde yayınlanamaz.

  12. BrandenSlomy表示:

    amoxicillin pills 500 mg: com pharm – amoxicillin capsules 250mg

  13. Blakesmema表示:

    заказать кухню — Легко заказать кухню, которая будет соответствовать всем вашим пожеланиям.

  14. kraken tor表示:

    It’s fantastic that you are getting thoughts from this paragraph as well as from our
    dialogue made at this time.

  15. mantalos.gr表示:

    Fastidious answers in return of this difficulty with solid arguments and describing everything on the topic of that.

  16. Узнай все о варикоцеле яичка варикоцеле слева

  17. zenitbet1.com表示:

    Зенит букмекерская контора скачать — начните выигрывать с удобным приложением на своем устройстве.

  18. Bradleygoath表示:

    where to buy prednisone in canada Prednisone Without Prescription can you buy prednisone over the counter uk

  19. Danieljek表示:

    buy amoxil http://amoxilcompharm.com/# amoxicillin 200 mg tablet

  20. En tant que site sœur de Pulsz, casino jeu gratuit sans inscription c’est qu’il
    paie fréquemment.

  21. Hi there, after reading this awesome piece of writing i am
    too glad to share my familiarity here with colleagues.

  22. Drugs information. Effects of Drug Abuse.
    buy cheap digoxin without insurance
    Everything trends of medicament. Get now.

  23. Узнай все о варикоцеле 1 степени варикоцеле и потенция

  24. Узнай все о варикоцеле 1 степени варикоцеле и потенция

  25. Bradleygoath表示:

    priligy priligy cheap priligy

  26. buy viagra表示:

    This online Bitcoin casino delivers an immersive experience that
    closely replicates the excitement of a physical casino,
    featuring a wide range of live games streamed in high definition.

  27. StevenNub表示:

    order clomid price: cheap clomid – where to buy clomid without dr prescription

發佈留言

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