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,363,026 Responses

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

  2. Jennifer表示:

    Если интересна тематика про “Магазины”, то рекомендуем посмотреть раздел – все про Магазины.- With regards, Jennifer

  3. lumi777表示:

    An intriguing discussion is worth comment. I do think
    that you should publish more on this subject,
    it may not be a taboo subject but typically people do not talk about these issues.

    To the next! Cheers!!

  4. crypto表示:

    I was recommended this website by my cousin. I’m
    not sure whether this post is written by him as nobody else know
    such detailed about my difficulty. You are incredible! Thanks!

  5. Wayne Freeman表示:

    #SandDuneDreams : From beginner rides to pro adventures buggy ride dubai

  6. DanielAbice表示:

    http://clomidonpharm.com/# buy generic clomid prices

  7. Worried about the installation process? Put your mind at ease with professional services from local roofing services in Carlsbad

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

  9. Appreciate the recommendation. Let me try it out.

  10. SamuelBix表示:

    buy cipro online canada: CiPharmDelivery – buy cipro online canada

  11. DanielAbice表示:

    http://amoxstar.com/# amoxicillin 200 mg tablet

  12. Attractive section of content. I just stumbled upon your blog skilled nursing and memory care in accession capital to
    assert that I acquire actually enjoyed account your blog posts.
    Anyway I will be subscribing to your augment and even I achievement you access consistently quickly.

  13. SamuelBix表示:

    can you buy clomid: clomidonpharm – how to get cheap clomid

  14. At this time I am ready to do my breakfast, later than having my breakfast coming again to read further news.

  15. DanielAbice表示:

    http://amoxstar.com/# buy amoxicillin 500mg usa

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

  17. The Reason Adhd Assessment Near Me Is The Most-wanted Item In 2023 Assessed For adhd

  18. RobertJar表示:

    how to get cheap clomid for sale: clomidonpharm – cost of clomid for sale

  19. hello!,I really like your writing so so much!
    percentage we keep in touch more approximately your post on AOL?

    I require an expert on this area to unravel my problem.

    May be that’s you! Taking a look ahead to see you.

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

  21. Nikefut表示:

    darkweb marketplace dark web links darknet drug store

  22. DanielAbice表示:

    http://cipharmdelivery.com/# buy cipro no rx

  23. DanielAbice表示:

    http://cipharmdelivery.com/# п»їcipro generic

  24. Бывают ломаные, прямые или кластерные, мостбет но традиционно выигрышный тип линий указан в списке расчетов автомата.

    Also visit my blog post; mostbet-wah7.top

  25. Wow! This blog looks just like my old one! It’s on a completely different topic but it has pretty much the same layout and design.
    Great choice of colors!

    Look at my page Alzheimer’s memory care homes

  26. betflix表示:

    Greetings! Very useful advice in this particular
    article! It’s the little changes which will make the most important changes.

    Thanks for sharing!

發佈留言

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