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,477,514 Responses

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

  2. Thank you, I’ve recently been searching for information approximately this topic for
    a long time and yours is the best I’ve found out till now.
    But, what in regards to the conclusion? Are you sure in regards to the source?

  3. Have you ever considered writing an ebook or
    guest authoring on other websites? I have a blog based on the same information you discuss and would really like to have you share
    some stories/information. I know my visitors would value your work.
    If you are even remotely interested, feel free to send me an e-mail.

  4. Shane Higgins表示:

    C’est super de voir autant d’informations disponibles sur le service ### anyKeyWord serrurier fichet

  5. Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to far added agreeable from you! However,
    how could we communicate?

  6. Ищете обмен валюты с минимальной комиссией? На сайте собрана информация об обменниках с лучшими курсами в Казахстане.

    Микрокредиты банки Казахстана .

  7. Chester Gibbs表示:

    This was quite informative. For more, visit home tire service

  8. You could certainly see your expertise within the article
    you write. The sector hopes for more passionate writers
    such as you who aren’t afraid to say how they believe. All the time go after your heart.

  9. The character of Kate Lethbridge-Stewart would return in one other direct-to-video production (2004’s Daemos Rising) before changing into a recurring character in later collection of the revived Physician Who (though the function could be recast to Jemma Redgrave).

  10. What’s up, for all time i used to check web site posts here early
    in the daylight, because i like to gain knowledge of more and more.

  11. Josephmax表示:

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

  12. DarioTob表示:

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

  13. Jamesdiure表示:

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

  14. Jamesdiure表示:

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

  15. CurtisIncix表示:

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

  16. This is my first time go to see at here and i am really pleassant to read all at single place.

  17. LeonardKnism表示:

    кухни на заказ в спб – Закажите кухню мечты у профессионалов в Санкт-Петербурге.

  18. I found this very helpful. For additional info, visit roof repair services

  19. DarioTob表示:

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

  20. mostbetaztpSi表示:

    Mostbet-da yutuqlar uchun o‘z imkoniyatingizni sinab ko‘ring | Mostbet platformasidan foydalanib, qiziqarli o‘yinlarga qo‘shiling | Mostbet O‘zbekiston bozorida yetakchi o‘yin platformasi | Mostbet saytida muntazam yangilanib turuvchi aksiyalar va bonuslar mavjud | Mostbet bilan o‘yinlar va pul tikish uchun qulaylik va tezkor to‘lovlar mostbetazcasino.com.az

  21. porno表示:

    sex, viagra

    My web-site: porno

  22. Jamesdiure表示:

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

  23. Nikefut表示:

    blackweb official website how to get on dark web deep web drug links

  24. HenrydeT表示:

    pinup-kazi.kz [url=https://pinup-kazi.kz/#]пин ап кз[/url] пин ап кз

  25. What’s up everyone, it’s my first pay a visit at this website, and article is
    really fruitful for me, keep up posting these types of articles.

發佈留言

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