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,234,148 Responses

  1. RandallTaulp表示:

    buying propecia without rx: order cheap propecia pill – cost of generic propecia without dr prescription

  2. What’s The Current Job Market For Double Glazing Near Me Professionals?
    Double Glazing Near Me

  3. Michal表示:

    How To Create An Awesome Instagram Video About Rep Kit rep kit (Michal)

  4. If You’ve Just Purchased Replacement Double Glazing Units Near
    Me … Now What? double glaze Window Repair

  5. The Worst Advice We’ve Received On Birth Defect Lawsuit Birth Defect lawsuits

  6. OLaneevige表示:

    В нашем мире, где диплом – это начало успешной карьеры в любой сфере, многие пытаются найти максимально быстрый и простой путь получения качественного образования. Наличие официального документа переоценить невозможно. Ведь именно он открывает дверь перед людьми, стремящимися начать профессиональную деятельность или учиться в ВУЗе.
    Наша компания предлагает очень быстро получить этот важный документ. Вы можете заказать диплом старого или нового образца, и это становится удачным решением для всех, кто не смог завершить обучение, утратил документ или желает исправить свои оценки. Каждый диплом изготавливается с особой тщательностью, вниманием ко всем деталям, чтобы в результате получился продукт, 100% соответствующий оригиналу.
    Плюсы этого решения заключаются не только в том, что вы сможете оперативно получить свой диплом. Процесс организован комфортно, с профессиональной поддержкой. Начиная от выбора нужного образца документа до консультаций по заполнению личных данных и доставки по стране — все будет находиться под полным контролем квалифицированных специалистов.
    Всем, кто пытается найти оперативный способ получить требуемый документ, наша компания готова предложить выгодное решение. Купить диплом – это значит избежать длительного обучения и не теряя времени переходить к важным целям, будь то поступление в ВУЗ или начало карьеры.
    https://diploman-russiyans.com

  7. RandallTaulp表示:

    buy cipro online: buy cipro online – ciprofloxacin

  8. Check Out: How Mesothelioma Lawsuits Is Taking Over And What We Can Do About It Mesothelioma Settlement

  9. Guide To Local SEO For Small Business: The Intermediate Guide On Local SEO For Small Business local seo For small Business

  10. My developer is trying to convince me to move to .net from
    PHP. I have always disliked the idea because of the
    costs. But he’s tryiong none the less. I’ve been using WordPress on a variety of websites for about a year and
    am nervous about switching to another platform. I have heard excellent
    things about blogengine.net. Is there a way I can transfer all my wordpress content into it?

    Any kind of help would be really appreciated!

  11. RandallTaulp表示:

    buy cytotec online: buy cytotec – Misoprostol 200 mg buy online

  12. 10 Healthy Double Glazed Front Doors Near Me Habits doubled glazed windows

  13. WilliamRhype表示:

    https://nolvadex.life/# tamoxifen lawsuit

  14. I can’t remember exactly what made セックス ロボットme stop, but I was in a good mood that day.

  15. 10 Top Mobile Apps For Wall Mounted Electric Fireplaces wall mount electric
    fireplace (http://www.c1aid4a5e.рф/)

  16. How To Design And Create Successful Portable Mobility Scooters For Sale Techniques
    From Home Second Hand shoprider mobility scooters for Sale

  17. WilliamRhype表示:

    http://lisinopril.network/# lisinopril 40 mg canada

  18. Case Horizon表示:

    20 Myths About CS GO Gambling Sites: Busted Case Horizon

  19. Great beat ! I would like to apprentice while you amend your
    website, how could i subscribe for a weblog website?
    The account aided me a acceptable deal. I had been a little bit acquainted
    of this your broadcast offered vivid clear idea

    My web blog; 6 soccer ball bag

  20. Micki表示:

    What Is Planet Spa Sleep Serenity And Why Is Everyone Speakin’ About It?
    planet spa sleep serenity – Micki,

  21. WilliamRhype表示:

    http://cytotec.club/# buy misoprostol over the counter

  22. Oh my goodness! Incredible article dude! Thanks, However I am
    going through problems with your RSS. I don’t
    understand why I can’t subscribe to it. Is there anybody else getting the same RSS issues?
    Anyone who knows the answer will you kindly respond?
    Thanx!!

  23. The 10 Most Terrifying Things About Window Repairs Near Me
    Window Repairs Near Me

  24. Guide To Accident Attorneys In My Area: The Intermediate Guide To Accident Attorneys In My Area accident attorneys

  25. This post will assist the internet users for building up new blog or even a
    weblog from start to end.

  26. RandallTaulp表示:

    tamoxifen endometrium: buy nolvadex online – does tamoxifen cause joint pain

  27. Davidtes表示:

    lisinopril 20 25 mg rx 535 lisinopril 40 mg where can i get lisinopril

發佈留言

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