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,366,646 Responses

  1. Write more, tһats all I have to ѕay.ᒪiterally, it seems as though you relked on thе
    video to make your poіnt. You clearly know what yourte talking about, why wastе your intеlliigence on justt рosting vidfeos to
    your weblog ԝhen you could be giving us something informative to read?

    Feel free to vіsit my website :: iconwin (wiki.snooze-hotelsoftware.de)

  2. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix в москве, можете посмотреть на сайте: ремонт телефонов infinix сервис
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  3. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix в москве, можете посмотреть на сайте: ремонт телефонов infinix адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  4. Leo Roberson表示:

    Have you ever before thought of wise modern technology in your kitchen? Incorporating it with your Interior Remodeling cupboards could boost both style and functionality

  5. KennethPah表示:

    where can i get clomid pill clomidonpharm buying clomid without dr prescription

  6. SmnPaish表示:

    The first time you how can i get cheap lioresal pill pharmacy that offers a discount on its products?

  7. No matter if some one searches for his necessary thing, thus he/she wishes to
    be available that in detail, so that thing is maintained over here.

    My homepage – แทงหวยออนไลน์

  8. Arkada Casino онлайн – это ваш проводник в мир азартных развлечений, где вы найдете эксклюзивные бонусы и увлекательные турниры.
    arkada casino бонусы

  9. Trucking Accident Lawyers Tools To Help You Manage Your Daily Life Trucking Accident Lawyers Trick That Every Person Should Be Able
    To trucking Accident lawyer

  10. Здесь можно где можно купить сейф для дома домашний сейф купить

  11. Max Baldwin表示:

    I’m bookmarking this page for future reference—great info about maintaining HVAC systems and finding help at places like hvac company fayetteville nc #

  12. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix адреса, можете посмотреть на сайте: ремонт телефонов infinix рядом
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  13. Normally I don’t read post on blogs, however I wish to say
    that this write-up very compelled me to take a
    look at and do it! Your writing taste has been amazed me.
    Thanks, very great post.

  14. If some one needs to be updated with most recent technologies afterward he must be pay
    a visit this site and be up to date all the time.

  15. SamuelBix表示:

    where can you buy amoxicillin over the counter: AmoxStar – amoxicillin 500mg capsules

  16. What’s The Current Job Market For Philips Senseo Professionals Like?
    philips senseo

  17. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix, можете посмотреть на сайте: ремонт телефонов infinix в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  18. SamuelBix表示:

    where to buy amoxicillin 500mg: amoxicillin without a doctors prescription – amoxicillin order online

  19. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix рядом, можете посмотреть на сайте: ремонт телефонов infinix в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  20. data kamboja表示:

    For hottest information you have to pay a quick visit world wide web and on internet I found this
    web site as a finest web page for most up-to-date updates.

  21. электрокарниз двухрядный цена https://elektrokarniz-dlya-shtor499.ru .

  22. RobertJar表示:

    prednisone 500 mg tablet: PredniBest – prednisone

發佈留言

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