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,626,768 Responses

  1. main zeus表示:

    Mainzeus dengan pengalaman sensasional di link terbaru main zeus slot
    deposit kecil kemenangan beruntun jadi jackpot
    jutaan tak ternilai withdraw cuma dalam 2 menit tersedia
    banyak jenis games yang bisa dimainkan dengan satu akun id saja

  2. Donaldabula表示:

    Buy Tadalafil 10mg Cheap Cialis Cheap Cialis

  3. 오피表示:

    Wine Tasting 오피

  4. Barrybib表示:

    generic sildenafil: cheap viagra – sildenafil online

  5. Charlesbot表示:

    http://fastpillsformen.com/# Cheap Sildenafil 100mg

  6. BrettTIT表示:

    Tadalafil Tablet: Max Pills For Men – Generic Tadalafil 20mg price

  7. Donaldabula表示:

    Cheap Viagra 100mg FastPillsForMen.com Buy generic 100mg Viagra online

  8. Pauline Brown表示:

    I enjoyed this read. For more, visit residential scaffolding

  9. When I initially commented I clicked the “Notify me when new comments are added” checkbox
    and now each time a comment is added I get three emails
    with the same comment. Is there any way you can remove me from that service?
    Thanks!

  10. JamesRax表示:

    Новости мобильных телефонов. Анонсы новых моделей и обновления старых. Слухи, концепты, первые утечки фотографий и даже рендеров или фан-концептов. formobile.top
    https://formobile.top/ – новости смартфонов 2025

  11. Maria Lambert表示:

    This was very beneficial. For more, visit scaffolding

  12. Adult Birthday Party Ideas – Let’s Prepare One Special Rip-Roaring Par-Tay!
    하이오피사이트

  13. сравнение процессоров intel [url=http://topcpu.ru/]http://topcpu.ru/[/url] .

  14. This was a wonderful guide. Check out Injury Recovry Center for more

  15. This was highly useful. For more, visit TheWinnslow

  16. What can I do to resolve this?

    my website … https://kamala-harris.io/

  17. рейтинги производительности процессоров рейтинги производительности процессоров .

  18. What’s The Current Job Market For French
    Fridge Freezer Uk Professionals? French fridge freezer uk

  19. Donaldabula表示:

    order viagra Fast Pills For Men sildenafil online

  20. free stresser表示:

    Great! Thank you so much for sharing this. I can’t wait to use it. Visit free stresser

  21. Barrybib表示:

    online ed pills: FastPillsEasy – buy erectile dysfunction pills online

  22. принудительный вывод из запоя ростов http://www.vyvod-iz-zapoya-rostov222.ru .

  23. нарколог на дом вывод из запоя ростов нарколог на дом вывод из запоя ростов .

發佈留言

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