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,523,742 Responses

  1. Five Things Everybody Does Wrong Regarding Buckingham Heating Engineers gas engineer Buckingham

  2. MichaelGeony表示:

    canada drugs coupon code http://easycanadianpharm.com/# easy canadian pharm

  3. 1 vin_wxSi表示:

    скачать 1win официальный сайт http://bbcc.com.kg/ .

  4. Michaelkig表示:

    dark web link https://github.com/darknetmarkets2025/darknetmarketlinks – dark market list dark web sites links

  5. Stand Strong Fencing
    Nashville, Tennessee 37201, Unites Ѕtates
    16154311511
    Superior wooden fencing options

  6. Davidmoits表示:

    Mega India Pharm: Mega India Pharm – indianpharmacy com

  7. Charleskepsy表示:

    cheapest pharmacy to get prescriptions filled https://familypharmacy.company/# family pharmacy

  8. rujak bonanza表示:

    I all the time emailed this website post page to
    all my associates, for the reason that if like to read it afterward my contacts will too.

  9. Williamkem表示:

    1xBet – одна из ведущих компаний в сфере ставок, которая предлагает игрокам широкий выбор видов спорта и разнообразные ставки. Одним из преимуществ игры в 1xBet являются бонусные предложения, которые помогут вам увеличить свои шансы на успех и получить дополнительные выгоды https://www.weyher.de/wp-includes/inc/1xbet_promo_code_free_bonus_code.html

  10. mostbet_fdpa表示:

    мост бет бетгеймс gtrtt.com.kg .

  11. The Reason Why 8ft Shipping Containers Is Everyone’s
    Passion In 2024 container uses

  12. Charleskepsy表示:

    online pharmacy non prescription drugs https://megaindiapharm.com/# Mega India Pharm

  13. arcocentrum表示:

    Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to far added agreeable from you! However, how could we communicate?

  14. Davidmoits表示:

    online pharmacy delivery usa: online pharmacy delivery usa – canadian pharmacy coupon code

  15. StevenDak表示:

    Are you a sports enthusiast looking to elevate your betting experience? Look no further than BetWinner, a platform that offers a seamless and thrilling way to engage with your favorite sports tournaments https://searcheng.in/blogs/121713/Unlock-Exclusive-Bonuses-with-BetWinner-Promo-Code-2025-LUCKY2WIN

  16. 98WIN表示:

    wonderful issues altogether, you simply received a brand
    new reader. What would you recommend in regards to
    your post that you made some days in the past? Any certain?

  17. If some one wishes expert view about blogging and site-building after that i propose him/her to pay a visit this weblog, Keep up the pleasant work.

  18. mostbet_dxpa表示:

    мостбет официальный сайт регистрация [url=http://gtrtt.com.kg/]http://gtrtt.com.kg/[/url] .

  19. The 10 Most Terrifying Things About Orville Macaw Parrot Price orville macaw Parrot price

發佈留言

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