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,480,242 Responses

  1. DarioTob表示:

    пинап казино: пинап казино – pinup

  2. DarioTob表示:

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

  3. Jamesdiure表示:

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

  4. This is very insightful. Check out roof replacement nearby for more

  5. Jamesdiure表示:

    пин ап казино официальный сайт: pinup – pinup-kazi.ru

  6. Josephmax表示:

    https://vavada-kazi.ru/# vavada kazi

  7. epoch times表示:

    I like what you guys are up too. Such clever work and exposure!
    Keep up the very good works guys I’ve added you guys to our blogroll.

  8. Josephmax表示:

    https://pinup-kazi.ru/# пинап казино

  9. SmdPaish表示:

    You’ll get excellent deals when you keflex dosing which is online at cheaper prices

  10. Jamesdiure表示:

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

  11. DarioTob表示:

    пин ап казино: пин ап казино – пин ап казино

  12. Jamesdiure表示:

    пин ап вход: pinup-kazi.ru – пин ап казино официальный сайт

  13. CurtisIncix表示:

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

  14. CurtisIncix表示:

    pinup-kazi.ru: pinup – пин ап казино официальный сайт

  15. CurtisIncix表示:

    пинап казино: пин ап кз – пин ап кз

  16. Hey there! I know this is kinda off topic but I was wondering which blog platform are you using
    for this site? I’m getting sick and tired
    of WordPress because I’ve had problems with hackers and I’m looking at alternatives for another platform.
    I would be fantastic if you could point me in the
    direction of a good platform.

  17. Josephmax表示:

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

  18. DarioTob表示:

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

  19. Josephmax表示:

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

  20. DarioTob表示:

    казино вавада: вавада казино зеркало – казино вавада

  21. iwin9999表示:

    Hey There. I found your blog the usage of msn. This is a very well written article.
    I will be sure to bookmark it and come back to learn extra of
    your useful info. Thank you for the post. I’ll certainly return.

  22. CurtisIncix表示:

    pinup: пин ап казино – pinup

  23. Jamesdiure表示:

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

  24. Medication information sheet. Cautions.
    where to buy verapamil pills
    Everything about medicines. Read information now.

  25. DarioTob表示:

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

  26. Jamesdiure表示:

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

  27. DarioTob表示:

    пин ап кз: pinup – пин ап казино

發佈留言

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