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,230,882 Responses

  1. Kaley表示:

    11 Strategies To Refresh Your Mental Health Assessment carers assessment mental health (Kaley)

  2. Derekfar表示:

    ultrabet tr online: ultrabet giris – ultrabet yeni giris 1125

  3. car表示:

    What Is Key Programming And How To Utilize It car

  4. 9 Lessons Your Parents Teach You About Programmed Car Keys Cut and Program car keys (https://extrabookmarking.com/)

  5. Ethel表示:

    What Experts On Private ADHD Assessments Want You To Be Able To private adhd assessment right to choose (Ethel)

  6. Stephenideox表示:

    Окунитесь в течение мир веселий также увлекательных историй на портале Любовь 28!
    любовь

  7. CarrollUnton表示:

    deneme bonusu veren siteler yeni https://matadorbet.bid/# matadorbet.bid

  8. LarryCoell表示:

    ultrabet ultrabet yeni giris 1125 ultrabet yeni giris 1125

  9. Hi! I know this is kind of off topic but I was wondering which blog platform are you using for this site?
    I’m getting tired of WordPress because I’ve had issues with hackers and I’m looking at options for another platform.
    I would be great if you could point me in the direction of
    a good platform.

  10. 匿名訪客表示:

    I’m very happy to discover this great site.
    I wanted to thank you for your time for this particularly fantastic read!!
    I definitely loved every bit of it and i also have you book-marked to check out new stuff in your website.

  11. Susan表示:

    You’ll Never Guess This Best Value Bean To Cup Coffee Machine’s Benefits best value bean to cup coffee machine
    (Susan)

  12. LarryCoell表示:

    matadorbet.bid matadorbet bid matadorbet.bid

  13. Dollie表示:

    You’ll Never Be Able To Figure Out This Truck Lawyers
    Near Me’s Tricks truck lawyer (Dollie)

  14. LarryCoell表示:

    matadorbet matadorbet bid matadorbet

  15. 15 Interesting Facts About Lung Cancer Asbestos
    Mesothelioma That You Never Known mesothelioma Lawyer

  16. google sex表示:

    Hi there! I understand this is sort of off-topic but I needed to ask.
    Does building a well-established website such as yours require a massive amount work?
    I am brand new to blogging but I do write in my journal everyday.
    I’d like to start a blog so I will be able to share my experience and feelings online.

    Please let me know if you have any suggestions or tips for brand new
    aspiring bloggers. Appreciate it!

  17. Manuelrof表示:

    Melbet – начинай играть на реальные деньги на официальном сайте онлайн казино Мелбет и выигрывай крупные суммы в популярных игровых автоматах kometa сайт kometacasino55 online

  18. LarryCoell表示:

    matadorbet matadorbet bid matadorbet giris

  19. It’s awesome for me to have a website, which is beneficial
    for my experience. thanks admin

  20. Hi mates, how is all, and what you desire to
    say about this article, in my view its genuinely awesome designed for me.

  21. Diplomi_pbkn表示:

    купить диплом ветеринарного врача 1russa-diploms.ru .

  22. Derekfar表示:

    slot tr online: az parayla cok kazandiran slot oyunlar? – en kazancl? slot oyunlar?

  23. virdsam表示:

    Have you ever thought about writing an e-book or
    guest authoring on other websites? I have a blog based on the same ideas
    you discuss and would love to have you share some stories/information. I know my visitors would enjoy your work.
    If you are even remotely interested, feel free to send me
    an email.
    https://virdsam.network

  24. игры с альтернативными версиями — это замечательный способ улучшить игровой процесс.
    Особенно если вы пользуетесь устройствами на платформе Android, модификации открывают перед вами огромный выбор.
    Я нравится использовать взломанные игры, чтобы наслаждаться бесконечными возможностями.

    Модификации игр дают невероятную
    свободу выбора, что погружение в игру гораздо захватывающее.

    Играя с твиками, я могу
    создать новый игровой процесс, что добавляет приключенческий процесс
    и делает игру более эксклюзивной.

    Это действительно интересно, как такие моды могут улучшить взаимодействие с игрой, а при этом сохраняя использовать такие игры с изменениями
    можно без особых рисков, если быть внимательным и следить
    за обновлениями. Это делает каждый игровой процесс лучше контролируемым, а возможности практически неограниченные.

    Обязательно попробуйте попробовать такие модифицированные версии для Android
    — это может придаст новый смысл

  25. ClydePab表示:

    guvenilir casino siteleri: guvenilir casino siteleri – Casino Siteleri

  26. Тут можно преобрести сейф противопожарный сейф противопожарный купить

  27. ClydePab表示:

    Casino Siteleri: guvenilir casino siteleri – Casino Siteleri

  28. What’s up, for all time i used to check webpage posts here early
    in the morning, since i enjoy to learn more and more.

發佈留言

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