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,227,639 Responses

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

  2. You’ll Never Guess This Psychiatric Doctors Near Me’s Benefits psychiatric doctors near Me

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

  4. Say “Yes” To These 5 Mobility Folding Scooter Tips fold away
    Mobility scooters (minecraftathome.com)

  5. Are How To Get Diagnosed With ADHD In Adults As Vital As Everyone Says?
    How To Get Diagnosed With Add As An Adult

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

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

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

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

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

  11. Ilene表示:

    Here is my page – best dating app for 40 and over – Ilene,

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

  13. Тут можно преобрести сейф противопожарный несгораемый сейф

  14. 5 Refridgerator Instructions From The Professionals
    cheapest fridge Freezers uk

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

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

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

  18. Pretty section of content. I just stumbled upon your blog and in accession capital to assert that I acquire in fact
    enjoyed account your blog posts. Any way I’ll be subscribing to your augment and
    even I achievement you access consistently rapidly.

  19. LarryCoell表示:

    az parayla cok kazandiran slot oyunlar? slot oyunlar? az parayla cok kazandiran slot oyunlar?

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

  21. Wilson表示:

    What’s The Current Job Market For Patio Heater Gas Cylinder
    Professionals? patio heater gas cylinder – Wilson,

  22. Sherita表示:

    10 Beautiful Graphics About Seat Leon Key Fob Replacement seat leon car key replacement [Sherita]

  23. LarryCoell表示:

    ultrabet ultrabet guncel ultrabet yeni giris 1125

  24. 5 Killer Quora Answers To Private ADHD Assessment London private adhd assessment london

  25. Chana表示:

    The Expert Guide To Sports Toto Prizes 토토사이트 추천
    (Chana)

  26. This Week’s Most Popular Stories About Program Car Key reprogram car key

  27. magnificent put up, very informative. I wonder
    why the opposite specialists of this sector do not understand this.
    You must proceed your writing. I am confident, you’ve a huge readers’ base already!

  28. great publish, very informative. I wonder why the other experts of this sector don’t understand this.
    You must continue your writing. I’m confident, you have
    a huge readers’ base already!

發佈留言

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