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,245,618 Responses

  1. Very good blog you have here but I was wanting
    to know if you knew of any message boards that cover the same topics talked about here?
    I’d really love to be a part of group where I can get feed-back from other knowledgeable individuals that share the same interest.

    If you have any suggestions, please let me know. Thanks a
    lot!

  2. Тут можно преобрести где купить оружейный сейф сейф под оружие цена

  3. Тут можно преобрести купить сейф под оружие купить сейф для ружья в москве

  4. Bradleygoath表示:

    can you buy cheap clomid no prescription buying clomid prices where can i get cheap clomid no prescription

  5. sofas on Sale表示:

    The 10 Most Scariest Things About Sofas On Sale sofas on Sale

  6. Тут можно преобрести оружейный шкаф купить москва купить сейф для ружья

  7. Тут можно преобрести сейф шкаф купить оружейный ящик купить

  8. Betflix999表示:

    I have read so many content concerning the blogger lovers however this post
    is actually a fastidious post, keep it up.

  9. Best Accident Attorneys Near Me Tools To Help You Manage Your
    Daily Life Best Accident Attorneys Near Me Technique Every Person Needs To Know accident Attorneys near
    me (humanlove.stream)

  10. BrandenSlomy表示:

    max pharm: cheap priligy – dapoxetine price

  11. Belinda表示:

    The 10 Most Popular Pinterest Profiles To Keep Track Of Foldable
    Power Wheelchairs easy fold portable electric wheelchair
    (Belinda)

  12. Тут можно преобрести сейф для охотничьего ружья купить сейф для ружья в москве

  13. Тут можно преобрести сейф для охотничьего ружья где купить сейф для ружья

  14. Тут можно преобрести сейф под ружье сейф под ружье

  15. BrandenSlomy表示:

    amoxicillin for sale online: Amoxicillin buy online – generic amoxicillin online

  16. Тут можно преобрести шкаф для ружья купить сейф оружейный

  17. Тут можно преобрести оружейный ящик купить купить оружейный шкаф

  18. StevenNub表示:

    canadian pharmacy amoxicillin: amoxil com pharm – amoxicillin 500

  19. BrandenSlomy表示:

    priligy maxpharm: max pharm – dapoxetine online

  20. cot Bed表示:

    10 Startups That Will Change The Best Cot For Newborn Industry For The Better cot Bed

  21. Тут можно преобрести оружейные сейфы и шкафы для охотничьего сейфы для оружия интернет магазин

  22. Medicine information for patients. Drug Class.
    how can i get cheap geodon for sale
    All what you want to know about medicine. Read information here.

  23. Тут можно преобрести сейф для оружия купить сейф для охотничьего карабина

  24. Тут можно преобрести шкаф для ружья сейф для ружья

  25. Тут можно преобрести сейф для оружия от производителя купить сейф для карабина

發佈留言

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