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,238,384 Responses

  1. Skye表示:

    Are You Making The Most Of Your Used Couches For Sale? 2 seater sofa sale
    Skye

  2. Тут можно преобрести сейф оружейный цена сейф для ружья цена

  3. Легко ли быть наблюдателем, когда
    вокруг творится зло и нельзя вмешаться, навести порядок, защитить?

    Главный герой этого романа – дон
    Румата (землянин Антон), который попадает на
    планету Арканар с экспериментальным миром.
    На этой планете царит средневековая
    жестокость, фальшь и борьба за власть.

    Но Румата не должен вмешиваться.
    Он ученый, который проводит эксперимент.
    Однако человек в нем берет вверх над ученым, сердце
    побеждает рассудок. Разве можно спокойно наблюдать, как зло побеждает добро,
    как талант растаптывается, а справедливости не существует?
    Главному герою это не удается…
    Трудно быть Богом

  4. you’re truly a good webmaster. The web site loading speed
    is amazing. It sort of feels that you are doing
    any unique trick. In addition, The contents are masterwork.
    you have performed a wonderful job on this topic!

    https://w4.livedrawhk6d.top/

  5. LarryCoell表示:

    ultrabet tr online ultrabet tr online ultrabet yeni giris 1125

  6. Medicament information sheet. Long-Term Effects.
    where to get cheap spiriva without a prescription
    Some trends of drug. Read now.

  7. Car Key Cut: What’s The Only Thing Nobody Is Talking About online Car key Cutting

  8. 7 Easy Tips For Totally Making A Statement With Your Volkswagen Key Cutting Service Near Me how to Unlock a volkswagen passat without a key (https://stroiprokatkor.ru:443/user/insectarch68)

  9. posteezy.com表示:

    The Top Companies Not To Be Follow In The Asbestos Attorney Industry mesothelioma Lawyer [posteezy.com]

  10. I like the valuable info you supply on your articles. I will bookmark your weblog and
    take a look at again here regularly. I’m reasonably certain I’ll be
    informed plenty of new stuff right here! Good luck for the following!

  11. I could not refrain from commenting. Exceptionally well written!

  12. Uazrzeq表示:

    Приобретение школьного аттестата с официальным упрощенным обучением в Москве

    christianpost.co.id/diplom-petrgu-kupit.html

  13. You’ll Never Guess This Best Rated Pellet Stoves’s Tricks Best rated Pellet stoves

  14. Linkvault.win表示:

    How To Survive Your Boss With Private Assessment For Adhd adhd assessment uk free (Linkvault.win)

  15. AaronBlupe表示:

    Создание лендингов под ключ в студии в Москве включает проектирование, дизайн и программирование, обеспечивающее эффективность и удобство использования. Также предоставляются услуги: оптимизация для Яндекс и Google, настройка рекламных кампаний, поддержка, обслуживание и ведение маркетинга цена создания лендингов

  16. I like the helpful info you provide in your articles.
    I’ll bookmark your blog and check again here frequently.

    I’m quite certain I’ll learn lots of new stuff right here!
    Best of luck for the next!

  17. PhillipRalty表示:

    Разработка сайтов на платформе 1С-Битрикс в студии в Москве включает полный цикл: от проектирования до запуска и дальнейшего сопровождения. Также предлагаются услуги: оптимизация сайта для поисковых систем, интеграция с хостингом, контентное наполнение, анализ данных и маркетинговые стратегии разработка интернет магазина на 1с битрикс

  18. LarryCoell表示:

    ultrabet guncel ultrabet tr online ultrabet yeni giris 1125

  19. Daniella表示:

    Valuable information. Fortunate me I found your website accidentally,
    and I am stunned why this accident didn’t came about in advance!
    I bookmarked it.

  20. 10 Tell-Tale Signals You Should Know To Find A New Repairing Glass glass door window repair

  21. Donette表示:

    Mesothelioma is a type of cancer that affects the cells that line the body’s cavities, which includes the lung tissue.
    It is triggered by exposure to asbestos (Donette), which is a
    kind of mineral fiber.

  22. corporate表示:

    I feel that is one of the such a lot important information for me.
    And i am glad reading your article. But wanna remark on some basic things,
    The site taste is wonderful, the articles is in point of fact excellent : D.
    Excellent activity, cheers

  23. 5 Killer Quora Answers On Fold Away Treadmill UK Fold away treadmill

  24. Derekfar表示:

    matadorbet: matadorbet bid – matadorbet bid

  25. ClydePab表示:

    matadorbet.bid: matadorbet giris – matadorbet

  26. Geraldvef表示:

    Разработка лендингов в студии в Москве осуществляется с учетом современных маркетинговых стратегий и требований рынка. К основным услугам добавляются: аудит и анализ конверсии, продвижение в поисковых системах, контентное наполнение, настройка CRM и профессиональная техническая поддержка создание лендинга

發佈留言

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