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,265,863 Responses

  1. DarioTob表示:

    pin up казино: pinup-kazi.kz – pinup kazi

  2. DarioTob表示:

    pin up казино: пин ап казино онлайн – пинап казино

  3. DarioTob表示:

    vavada-kazi.ru: вавада казино – вавада казино онлайн

  4. 犯 訓読み表示:

    Multiple multitools might have for use to defeat a given system.

  5. DarioTob表示:

    пин ап вход: pinup-kazi.ru – пинап казино

  6. Gibkiy_jePi表示:

    Удобный способ придать интерьеру завершенный вид
    гибкий самоклеящийся плинтус гибкий самоклеящийся плинтус .

  7. DarioTob表示:

    пин ап казино: пин ап вход – пинап казино

  8. Josephmax表示:

    http://pinup-kazi.ru/# pinup kazi

  9. DarioTob表示:

    vavada: vavada – vavada kazi

  10. DarioTob表示:

    вавада: вавада казино онлайн – vavada

  11. This is my first time pay a visit at here and i am in fact pleassant to read everthing at one place.

  12. CurtisIncix表示:

    пинап казино: pinup kazi – пин ап зеркало

  13. เสื้อลายดอก เสื้อฮาวาย เสื้อสงกรานต์ เสื้อเที่ยวทะเล เสื้อใส่ทำบุญ
    เสื้อคู่ เสื้อทีม เสื้อบริษัท เสื้อปาร์ตี้ ใส่ได้ทั้งผู้ชาย และ ผู้หญิง สีสันสดใส ใส่สบาย มีหลากหลาย สไตล์
    สี และ ลวดลายให้เลือกสรร ใส่ได้หลากหลายโอกาส เช่น เที่ยวทะเล
    ทำบุญ สรงน้ำพระพุทธรูปที่บ้าน รดน้ำดำหัวผู้ใหญ่ในบ้าน อีกทั้งเป็น เสื้อรุ่น เสื้อกิจกรรม เสื้อกลุ่ม เสื้อรับน้อง เสื้อใส่เที่ยวทะเล เสื้อใส่ทำบุญ เสื้อฮาวายลายดอก เสื้อฮาวายวินเทจ เสื้อลายดอกพิมพ์ลายดอกไม้เรโทรสไตล์วินเทจ ดีไซน์ทันสมัย เนื้อผ้าเบาบางพร้อมกับให้ความรู้สึกเย็นขณะสวมใส่เหมาะสำหรับการ ทุกฤดูกาล

  14. нарколог на дом екатеринбург цены https://domsadremont.ukrbb.net/viewtopic.php?f=3&t=907 .

  15. This website was… how do I say it? Relevant!! Finally I have found something which
    helped me. Thanks a lot!

  16. HenrydeT表示:

    vavada вавада казино вавада казино зеркало

  17. DarioTob表示:

    казино вавада: vavada – vavada

  18. Sued By Credit Card Company: Shooting For Debt Negotiation 다바오 vpn (wifidb.science)

  19. DarioTob表示:

    пин ап зеркало: pinup – пин ап казино официальный сайт

  20. marmorfolie表示:

    It’s not my first time to go to see this web
    page, i am browsing this web site dailly and take good facts from here
    everyday.

  21. Jamesdiure表示:

    вавада казино: вавада онлайн казино – vavada

  22. I was very happy to discover this site. I wanted
    to thank you for your time just for this fantastic read!!
    I definitely liked every bit of it and i also have you
    book marked to see new stuff on your site.

  23. Nikefut表示:

    darknet drug links dark web site darknet marketplace

  24. DarioTob表示:

    вавада онлайн казино: казино вавада – вавада казино

  25. DarioTob表示:

    vavada: казино вавада – вавада онлайн казино

  26. Aborsi表示:

    I was more than happy to discover this website.

    I need to to thank you for ones time just for this
    wonderful read!! I definitely savored every bit of it and i also have you bookmarked to look at new things on your web site.

  27. Howdy, I believe your blog might be having internet browser compatibility problems.
    Whenever I take a look at your blog in Safari, it looks fine however,
    if opening in IE, it’s got some overlapping issues. I merely wanted to give you a quick heads up!
    Aside from that, fantastic site!

發佈留言

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