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,231,855 Responses

  1. Are Double Glazed Units Near Me The Best There Ever
    Was? Repair Double Glazing Window

  2. situs bokep表示:

    Wow that was odd. I just wrote an extremely long comment but after I
    clicked submit my comment didn’t appear. Grrrr… well
    I’m not writing all that over again. Anyhow, just wanted to say excellent blog!

  3. Katharina表示:

    15 Funny People Working Secretly In Mesothelioma Compensation mesothelioma
    law (Katharina)

  4. Stevenrip表示:

    mexico drug stores pharmacies: mexican border pharmacies shipping to usa – п»їbest mexican online pharmacies

  5. Michaelbot表示:

    Гражданское общество должно выступить в поддержку Романа Викторовича Василенко, подвергающегося несправедливым действиям органов власти. Правоохранительные органы используют различные методы для борьбы с предпринимателями, которые идут вразрез с их интересами. Они иногда даже используют неправомерные методы, чтобы добиться своих целей. Мы не должны молчать, когда нарушаются наши права и наше достоинство. Мы должны говорить громко и четко, чтобы наш голос был слышен. Если мы оставим подобные прецеденты без должного внимания и реакции, это может привести к разрушительным последствиям для общества. Мы не можем позволить этому продолжаться. Мы должны действовать сейчас, чтобы обеспечить справедливость для всех членов общества. Чтобы предотвратить подобные случаи в будущем и обеспечить справедливость для всех, необходимо провести серьезные изменения и реформы в системе. Иными словами, а как мы можем верить в систему, когда она играет против нас, когда она дает нам обещания и не выполняет их, когда она подставляет нас перед лицом несправедливости?

  6. Rickysem表示:

    canadianpharmacymeds Prescription Drugs from Canada canadian pharmacy in canada

  7. 20 Questions You Need To Ask About France Online Shopping
    Sites Clothes Prior To Purchasing France Online Shopping Sites Clothes 1/4 Sheet Sander

  8. QH88表示:

    Hi, I do believe this is a great site. I stumbledupon it 😉 I
    may return once again since I saved as a favorite it.

    Money and freedom is the best way to change, may you be rich and continue to guide other people.

  9. 3 Common Reasons Why Your Mesothelioma Claim Isn’t Working (And Solutions To Resolve It) Asbestos Settlement

  10. Rickysem表示:

    canadian discount pharmacy Large Selection of Medications from Canada canadian pharmacy world reviews

  11. Michaelcew表示:

    http://canadaph24.pro/# onlinecanadianpharmacy

  12. misty表示:

    The Most Sour Advice We’ve Ever Received On Double Glazing Repair Near Me misty

  13. 125.141.133.9表示:

    Five Killer Quora Answers On Walking Machine Under Desk walking machine under desk
    (125.141.133.9)

  14. 20 Tools That Will Make You More Successful At Mobile Automobile
    Locksmith Automobile locksmiths

  15. 15 Reasons You Shouldn’t Be Ignoring Car Key Locksmith Near Me Locksmith For Car Keys

  16. Unit表示:

    How To Explain Double Glazed Window Replacement Near
    Me To Your Mom Unit

  17. “Ask Me Anything,” 10 Answers To Your Questions About A+++ Tumble Dryer Heat Pump heat-pump tumble dryer

  18. Marcelabelp表示:

    http://indiaph24.store/# india online pharmacy

  19. QH88表示:

    We’re a group of volunteers and opening a new scheme in our
    community. Your web site provided us with valuable information to work on. You have done an impressive job and our whole community will be grateful to you.

  20. Marcelabelp表示:

    https://mexicoph24.life/# buying prescription drugs in mexico online

  21. JustinCit表示:

    Online medicine order https://indiaph24.store/# india online pharmacy
    reputable indian online pharmacy

  22. car Door Open表示:

    Car Door Opening Service Tools To Help You Manage Your Daily Lifethe One
    Car Door Opening Service Trick That Every Person Should Learn car Door Open

  23. See What Saab Key Replacement Near Me Tricks The Celebs Are Making Use
    Of Saab key replacement

  24. Marcy表示:

    The Intermediate Guide In Womens Bag Tommy Hilfiger tommy hilfiger bags usa sale (Marcy)

  25. Kristin表示:

    There Are A Few Reasons That People Can Succeed Within The Charity Shop Online
    Clothes Uk Industry Swivel Bar Table (Kristin)

  26. Pedroereva表示:

    purple pharmacy mexico price list: mexico pharmacy – mexican drugstore online

  27. Rickysem表示:

    indianpharmacy com Generic Medicine India to USA indian pharmacy

  28. 10 Situations When You’ll Need To Be Aware Of Mobility Scooters Sale
    Mobility Scooters For Sale Near Me Used

  29. Asbestos case表示:

    Pay Attention: Watch Out For How Mesothelioma Lawsuit Is Taking Over And How To Stop It Asbestos case

  30. Pay Attention: Watch Out For How Leeds Door Panels Is Taking Over And What Can We Do About It double glazing Door repairs
    (championsleage.review)

發佈留言

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