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,121,506 Responses

  1. At this time I am going to do my breakfast, once having my breakfast coming over again to read other news.

  2. Eltonwag表示:

    лучшие ретриты https://ретриты.рф

  3. Great article! We will be linking to this particularly great content on our site.
    Keep up the great writing.

  4. Eltonwag表示:

    ретриты геленджик https://ретриты.рф

  5. Drstobeese表示:

    estradiol inhouse pharmacy: pharmacy rx symbol – Nootropil

  6. Why Nobody Cares About Sofas Sectionals sectional sofas nearby

  7. Kevinamith表示:

    Уборка промышленных помещений после пожара http://uborka-ot-pozhara.ru/

  8. Fantastic post however I was wondering if you could write a litte more on this topic?
    I’d be very grateful if you could elaborate a little
    bit more. Thanks!

  9. 10 Facts About Symptoms Of Adhd In Adults Test That Can Instantly Put You In An Optimistic Mood
    adhd depression Symptoms (https://mehmetnuriarslan.com/user/germanuganda8)

  10. How To Outsmart Your Boss On Seat Ibiza Key seat ibiza keys

  11. Easydrorbix表示:

    viagra india online pharmacy: benadryl boots pharmacy – discount rx pharmacy

  12. Piece of writing writing is also a excitement, if you be familiar
    with afterward you can write or else it is complex to write.

  13. konteyner表示:

    konteyner modelleri | Bu makale, iş hayatında uygulayabileceğim birçok stratejik bilgi sundu. Özellikle verdiğiniz somut örnekler çok değerliydi.

  14. DouglasHoapy表示:

    Промокод Fonbet на сегодня бесплатно https://solnechnajdolina.ru/news/aktualnuy_promokod_fonbet_pri_registracii.html
    Для получения бесплатного промокода на сегодня рекомендуется регулярно проверять обновления на официальном сайте Fonbet или подписаться на рассылку новостей. Примером такого промокода может быть ‘GIFT200’, который предоставляет бесплатные ставки или другие бонусы для новых пользователей. Регулярное использование таких промокодов помогает получить дополнительные преимущества и увеличивает шансы на выигрыш.

  15. DouglasHoapy表示:

    Фрибеты Фонбет промокод https://pesni.ru/new/inc/aktualnuy_promokod_fonbet_pri_registracii.html
    Промокоды на фрибеты от Фонбет предоставляют пользователям возможность сделать бесплатные ставки. Например, промокод ‘GIFT200’ активирует фрибеты для новых пользователей, что позволяет сделать ставки без риска потери собственных средств. Эти промокоды делают игру более привлекательной и увеличивают шансы на выигрыш.

  16. Drstobeese表示:

    united pharmacy online: on line pharmacy – cytotec in malaysia pharmacy

  17. DouglasHoapy表示:

    Fonbet где взять промокод https://www.bigpowernews.ru/files/pgs/aktualnuy_promokod_fonbet_pri_registracii.html
    Для получения промокода Fonbet рекомендуется проверять обновления на официальном сайте букмекера, подписаться на рассылку новостей или следить за акциями в социальных сетях. Промокоды также могут быть доступны через партнерские сайты и рекламные кампании. Примером промокода может быть ‘GIFT200’, который предоставляет бесплатные ставки и другие бонусы.

  18. You’ll Never Guess This Automatic Folding Mobility Scooter Reviews’s Tricks automatic folding Mobility scooter reviews

  19. Easydrorbix表示:

    clozaril pharmacy registry: rx advantage pharmacy – online no prescription pharmacy

  20. The Reason Best 3 Wheel Pushchair Is Fast Increasing To
    Be The Hottest Trend Of 2023 3 wheel Pushchairs

  21. Good post. I learn something new and challenging on blogs I stumbleupon everyday.
    It’s always useful to read content from other authors and
    use something from their sites.

  22. situs bokep表示:

    Hello it’s me, I am also visiting this web site regularly, this web
    page is actually nice and the viewers are really sharing fastidious thoughts.

  23. I know this if off topic but I’m looking into starting my
    own blog and was curious what all is required to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very internet savvy so I’m not 100% sure. Any
    recommendations or advice would be greatly appreciated. Thanks

  24. DouglasHoapy表示:

    Бонус Fonbet промокод https://www.bigpowernews.ru/files/pgs/aktualnuy_promokod_fonbet_pri_registracii.html
    Промокоды Fonbet предоставляют пользователям различные бонусы, включая фрибеты и бонусные деньги. Например, промокод ‘GIFT200’ активирует приветственный бонус, который включает бесплатные ставки и другие привилегии. Эти промокоды делают игру на платформе более выгодной и интересной.

  25. memek表示:

    I was suggested this website by my cousin. I am not sure whether this post is written by
    him as nobody else know such detailed about my problem.

    You are wonderful! Thanks!

    Feel free to surf to my site memek

  26. Easydrorbix表示:

    botox online pharmacy: Aebgmearp – xenical online pharmacy

  27. Drstobeese表示:

    methotrexate pharmacy mistake: Starlix – fincar uk pharmacy

發佈留言

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