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,599,299 Responses

  1. Danieldrymn表示:

    ZithPharmOnline: zithromax over the counter canada – ZithPharmOnline

  2. Michaelscoob表示:

    where to buy prednisone uk: Pred Pharm Net – prednisone cost canada

  3. Danieldrymn表示:

    prices for lisinopril: Lisin Express – buy lisinopril online no prescription

  4. Michaelscoob表示:

    buy prednisone online without a script: buy prednisone from canada – Pred Pharm Net

  5. Danieldrymn表示:

    AmOnlinePharm: amoxicillin 500 mg capsule – amoxicillin 50 mg tablets

  6. I am regular reader, how are you everybody? This piece of writing posted at this website is
    genuinely nice.

  7. Michaelscoob表示:

    rexall pharmacy amoxicillin 500mg: amoxicillin brand name – AmOnlinePharm

  8. LanceFen表示:

    cost of amoxicillin 875 mg: amoxicillin online purchase – amoxicillin online without prescription

  9. Michaelscoob表示:

    ZithPharmOnline: buy zithromax 500mg online – zithromax for sale cheap

  10. news表示:

    With havin so much written content do you ever run into any
    problems of plagorism or copyright violation? My site has a lot of completely unique content
    I’ve either written myself or outsourced but it appears a lot
    of it is popping it up all over the internet without my permission. Do you know any ways to help protect against content from being stolen? I’d certainly
    appreciate it.

  11. Sazrlma表示:

    Приобрести диплом любого университета!
    Приобрести диплом ВУЗа по выгодной цене можно, обратившись к проверенной специализированной компании. Приобрести диплом: diplomk-v-krasnodare.ru/vot-neskolko-variantov-zagolovkov-otvechayushix-trebovaniyam-kupit-diplom-s-provodkoj-v-reestre-nedorogo-diplom-s-reestrom-ofitsialno-bistro-vigodno-prodazha-diplomov-s-garanti

  12. Danieldrymn表示:

    ZithPharmOnline: buy zithromax 1000 mg online – cheap zithromax pills

  13. Gates of Olympus oyununda kayıplar yaşıyorum!
    dede demo oyna, Pragmatic Play tarafından sunulan heyecan dolu bir slot oyunudur.|Pragmatic Play’in sunduğu Gates of Olympus, efsanevi bir temaya sahiptir. Bu oyun, Zeus’un krallığına adım atma fırsatı sunar.

    Gates of Olympus demo oyna seçeneği ile oyunun temposunu ve özelliklerini önceden deneyimleyebilirsiniz.

    Gates of Olympus oyna demo modunda, oyunun yüksek volatilitesi ve çarpıcı grafikleriyle tanışabilirsiniz. Oyunun ana özellikleri arasında çok sayıda ücretsiz dönüş ve yüksek kazanç potansiyeli bulunur. Gates of Olympus ile eğlencenin ve kazancın kapılarını aralayın!

  14. news表示:

    Great website. Plenty of useful information here. I am sending it to a
    few pals ans also sharing in delicious. And naturally, thanks for your effort!

  15. Danieldrymn表示:

    Pred Pharm Net: how to buy prednisone – Pred Pharm Net

  16. Richardaudit表示:

    https://zithpharmonline.com/# ZithPharmOnline

  17. LanceFen表示:

    AmOnlinePharm: AmOnlinePharm – AmOnlinePharm

  18. Michaelscoob表示:

    ZithPharmOnline: ZithPharmOnline – where to buy zithromax in canada

  19. DarylFerma表示:

    На сайте films2025.my вы можете смотреть новинки кино 2025 года абсолютно бесплатно. Удобная навигация по жанрам — от комедий и боевиков до фантастики и семейных фильмов — позволяет быстро найти интересующую вас картину. Все фильмы доступны в высоком качестве HD и без регистрации. Отличный выбор для вечернего просмотра смотреть вестерн 2025 бесплатно

  20. Danieldrymn表示:

    buying clomid prices: can i order clomid tablets – Clom Fast Pharm

  21. This is really attention-grabbing, You’re an excessively skilled blogger.
    I’ve joined your feed and look ahead to in search of extra of your fantastic post.
    Additionally, I have shared your web site in my social networks

  22. LanceFen表示:

    buy zithromax online fast shipping: ZithPharmOnline – zithromax for sale cheap

  23. dragon money вход в личный кабинет dragon money вход в личный кабинет .

  24. Sazryfi表示:

    Заказать диплом любого ВУЗа!
    Купить диплом университета по выгодной стоимости возможно, обратившись к надежной специализированной фирме. Заказать диплом: diplomgorkiy.com/ofitsialnie-diplomi-o-visshem-obrazovanii-v-reestre

  25. Danieldrymn表示:

    buy prednisone 50 mg: Pred Pharm Net – Pred Pharm Net

  26. Hi, all is going sound here and ofcourse every one is sharing data, that’s
    in fact fine, keep up writing. http://Karaoke-soft.com/smf2/index.php?action=profile;u=267184

  27. Richardaudit表示:

    http://clomfastpharm.com/# Clom Fast Pharm

發佈留言

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