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,666,386 Responses

  1. site表示:

    Wonderful blog! I found it while browsing on Yahoo News.
    Do you have any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!

    Cheers

  2. TimothyDok表示:

    USACanadaPharm pharmacy canadian superstore buying drugs from canada

  3. I know this if off topic but I’m looking into starting my own weblog and was
    wondering what all is needed to get set up? I’m assuming having a blog
    like yours would cost a pretty penny? I’m not very
    web savvy so I’m not 100% sure. Any tips or advice would be greatly
    appreciated. Appreciate it

  4. Samuelcuh表示:

    canadian pharmacy online: usa canada pharm – USACanadaPharm

  5. Связаться с нами можно через электронную почту или онлайн-чат на странице казино STARDA.

  6. WETOGEL表示:

    This world doesn’t crown kings—it forges warlords. WETOGEL is your chance to rise from rogue to ruler. https://heylink.me/login_wetogel/

  7. StephenCer表示:

    USACanadaPharm: USACanadaPharm – usa canada pharm

  8. StephenCer表示:

    canadapharmacyonline com: canadian pharmacy ltd – usa canada pharm

  9. Samuelcuh表示:

    online pharmacy canada: USACanadaPharm – USACanadaPharm

  10. Dwightkak表示:

    online canadian pharmacy: canadian valley pharmacy – canadian pharmacy no scripts

  11. phising表示:

    Howdy! Would you mind if I share your blog
    with my twitter group? There’s a lot of folks that
    I think would really enjoy your content. Please let me know.
    Thanks

  12. Dwightkak表示:

    USACanadaPharm: best canadian pharmacy to buy from – canadian pharmacies online

  13. Столица Крыма, привлекая туристов своей богатой историей и живописными окрестностями, становится местом притяжения для путешественников со всего мира. Междугороднее такси утверждается в один из самых популярных способов передвижения для тех, кто желает исследовать этот регион с максимальным удовольствием. Этот вид транспорта позволяет быстро и легко добраться до таких популярных мест, как Ялта, Севастополь или Бахчисарай.
    https://tratatur.ru/price/taxi-simferopol-malorechenskoe

  14. TimothyDok表示:

    usa canada pharm USACanadaPharm USACanadaPharm

  15. Sazrnkx表示:

    Мы изготавливаем дипломы любой профессии по приятным тарифам.
    Вы покупаете диплом через надежную фирму. Заказать диплом о высшем образовании– http://chat.app8station.com/read-blog/17123_vozmozhno-li-gramotno-kupit-dokumenty-o-nalichii-obrazovaniya-v-nastoyashij-mome.html/ – chat.app8station.com/read-blog/17123_vozmozhno-li-gramotno-kupit-dokumenty-o-nalichii-obrazovaniya-v-nastoyashij-mome.html

  16. Mazrxok表示:

    Мы можем предложить дипломы любой профессии по приятным тарифам. Стараемся поддерживать для заказчиков адекватную ценовую политику. Для нас важно, чтобы документы были доступны для большого количества наших граждан.
    Заказ документа, который подтверждает окончание ВУЗа, – это выгодное решение. Купить диплом университета: zakaz-na-diplom.ru/kupit-diplom-sajt/

  17. skladi_rkot表示:

    аренда мест хранения аренда мест хранения .

  18. 1win_ebSt表示:

    1win регистрация http://1win7017.ru .

  19. StephenCer表示:

    canadian drugs: canadian compounding pharmacy – pharmacy canadian superstore

  20. Samuelcuh表示:

    best canadian online pharmacy: canadian online pharmacy – USACanadaPharm

  21. Albertbiave表示:

    http://usacanadapharm.com/# canadian pharmacy oxycodone

  22. Sazrxgv表示:

    Мы изготавливаем дипломы любой профессии по приятным тарифам.
    Вы покупаете документ через надежную компанию. Купить диплом о высшем образовании– http://rebeccaitow.com/forums/forum/improvement-by-design-lab/ – rebeccaitow.com/forums/forum/improvement-by-design-lab

  23. StephenCer表示:

    USACanadaPharm: best rated canadian pharmacy – legitimate canadian pharmacies

  24. Samuelcuh表示:

    canadian drug pharmacy: USACanadaPharm – trusted canadian pharmacy

  25. 1win_gpMn表示:

    скачать 1win с официального сайта 1win7006.ru .

發佈回覆給「казино старда」的留言 取消回覆

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