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,479,698 Responses

  1. Generally I don’t learn article on blogs, but I would
    like to say that this write-up very forced me to take a look at and do so!

    Your writing style has been amazed me. Thanks, quite nice post.

  2. Sue Castillo表示:

    Thanks for the insightful write-up. More like this at Home Solar Energy Installation

  3. Ellen Fuller表示:

    Your tips for DIY pest control are fantastic! They can save time and money while keeping homes pest-free. Check out pest control near me for more DIY ideas

  4. Iyannaobesk表示:

    mobile poker club скачать на пк
    mobile poker club скачать на компьютер бесплатно

  5. CurtisIncix表示:

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

  6. Medicines information. Long-Term Effects.
    seroquel causing voices
    Some information about medicine. Read information here.

  7. CurtisIncix表示:

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

  8. Harold Rose表示:

    Looking to simplify your investment experience? Property Management Fort Myers takes care of the day-to-day tasks, allowing you to enjoy the benefits Property Management For Rentals

  9. blue film表示:

    Yes! Finally someone writes about janda binal.

  10. DarioTob表示:

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

  11. I love your blog.. very nice colors & theme. Did you make this website yourself or
    did you hire someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to find out where u got this from.
    kudos

  12. DarioTob表示:

    пин ап казино официальный сайт: пинап казино – пинап казино

  13. id=”firstHeading” class=”firstHeading mw-first-heading”>Search results

    Help

    English

    Tools

    Tools
    move to sidebar hide

    Actions

    General

  14. DarioTob表示:

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

  15. Blythe表示:

    10 Amazing Graphics About French Door Fridge Ice Maker fisher and paykel french door fridge ice maker (Blythe)

  16. DarioTob表示:

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

  17. Jamesdiure表示:

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

  18. DarioTob表示:

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

發佈留言

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