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,676,718 Responses

  1. HassanbuifS表示:

    http://matadorbet.bid/# matadorbet bid
    deneme bonusu veren siteler yerliarama.org

  2. Derekfar表示:

    az parayla cok kazandiran slot oyunlar?: en kazancl? slot oyunlar? – slot siteleri

  3. CarrollUnton表示:

    denemebonusuverensiteler.top https://matadorbet.bid/# matadorbet giris

  4. CharlesDex表示:

    Prescribing details available. Get medication facts.
    can i buy prednisone over the counter in spain
    Comprehensive medicine guide. Pill information available.

  5. 7 Easy Tips For Totally Rocking Your Asbestos Cancer Lawyer Mesothelioma Settlement
    Mesothelioma lawsuits

  6. Key Fob volvo表示:

    Nine Things That Your Parent Taught You About Key Fob
    Volvo Key Fob volvo

  7. scam表示:

    Wow, fantastic blog layout! How long have you been running a blog for?

    you made running a blog look easy. The overall glance of your website is fantastic, let alone the content!

  8. CarrollUnton表示:

    deneme bonusu veren siteler mycbet.com https://matadorbet.bid/# matadorbet.bid

  9. LarryCoell表示:

    Casino Siteleri Casino Siteleri Casino Siteleri

  10. CarrollUnton表示:

    deneme bonusu veren siteler yerliarama.org https://matadorbet.bid/# matadorbet.bid

  11. atavi.Com表示:

    Five Killer Quora Answers On Retro American Fridge Freezer retro american fridge
    freezer (atavi.Com)

  12. 먹튀검증表示:

    Are You Responsible For A Sports Toto Latest Results Budget?

    12 Top Notch Ways To Spend Your Money 먹튀검증

  13. Тут можно преобрести огнестойкие сейфы купить сейф москва огнестойкий купить

  14. 15 Unquestionable Reasons To Love Auto Key Locksmith
    automotive key Fob locksmith Near me (opensourcebridge.science)

  15. LarryCoell表示:

    ultrabet guncel ultrabet giris ultrabet bonus

  16. I’m curious to find out what blog platform you have been using?
    I’m experiencing some minor security issues with my latest blog and
    I would like to find something more risk-free. Do you have any recommendations?

  17. Thanks for ones marvelous posting! I quite enjoyed reading it,
    you may be a great author.I will be sure to bookmark your blog and will eventually come back in the
    future. I want to encourage you to ultimately continue your great writing, have a nice evening!

  18. CarrollUnton表示:

    deneme bonusu veren siteler 2024 https://casinositeleri.win/# guvenilir casino siteleri

  19. Link exchange is nothing else but it is only placing the other person’s web site link on your page at appropriate place and other person will also do same
    for you.

  20. 20 Quotes That Will Help You Understand ADHD Diagnoses adhd Overdiagnosis

  21. What Is The Reason Toto Online Terbaik Is Right For You togel Hongkong

  22. Danny表示:

    The 10 Most Terrifying Things About Adult
    ADHD Diagnosis adult adhd diagnosis (Danny)

  23. Lidiaaxoke表示:

    Здравейте на всички!
    Исках да се включа в темата, защото и аз имам проблеми с поликистозни яйчници и знам колко трудно може да бъде. При мен признаците включват нередовен цикъл, проблеми с кожата и периоди на умора. Изпробвала съм различни подходи и искам да разкажа какво ми е помогнало досега.
    На първо място, промяната в храненето беше важен фактор – ограничих захарта и преработените въглехидрати, а вместо това включих повече пълнозърнести продукти, зеленчуци и полезни мазнини. Освен това, мио-инозитол и витамин D се оказаха полезни за мен. Усетих, че цикълът ми започна да бъде малко по-постоянен и се чувствам по-енергична.
    Естествено, всичко е много лично и препоръчвам да се посъветвате с лекар, за да намерите най-добрия подходящ метод за вас. Но не се предавайте! С малки стъпки и насоки от специалисти, нещата започват да се подобряват.

    поликистоза на яйчниците мкб

  24. Тут можно преобрести купить оружейный сейф в интернет магазин оружейный шкаф купить в москве

  25. Derekfar表示:

    slot oyunlar?: en kazancl? slot oyunlar? – slot oyunlar?

發佈留言

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