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,583 Responses

  1. Josephmax表示:

    https://pinup-kazi.ru/# пин ап вход

  2. CurtisIncix表示:

    vavada kazi: vavada – vavada-kazi.ru

  3. Nikefut表示:

    black internet darknet site deep web sites

  4. Jamesdiure表示:

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

  5. 가입머니表示:

    Hello there! This post couldn’t be written any better!
    Reading through this post reminds me of my previous room mate!
    He always kept chatting about this. I will forward this post to
    him. Pretty sure he will have a good read. Thanks for sharing!

    Look at my site :: 가입머니

  6. Truly thankful receiving messages crammed constantly merch hair salon

  7. Jamesdiure表示:

    pinup: pinup – pinup-kazi.ru

  8. free plinko表示:

    Hello, i think that i saw you visited my blog thus i came
    to “return the favor”.I am trying to find things
    to enhance my website!I suppose its ok to use some of
    your ideas!!

  9. Voor iedereen die twijfelt over hun keuze makelaar

  10. Jamesdiure表示:

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

  11. Content-Spinning.fr vous aide à trouver le meilleur outil de reformulation de texte pour votre entreprise. Une analyse détaillée et complète des outils disponibles est faite pour vous aider à prendre une décision éclairée.

  12. Nikefut表示:

    blackweb darknet markets 2024 onion market

  13. This was very well put together. Discover more at mobile tire shop

  14. I’m impressed, I must say. Seldom do I come across a blog that’s both educative and engaging,
    and without a doubt, you’ve hit the nail on the head.
    The issue is something which not enough men and women are speaking intelligently about.
    I am very happy that I stumbled across this in my hunt for something relating to
    this.

  15. 꽁머니表示:

    I like the valuable info you provide in your articles.
    I’ll bookmark your blog and check again here regularly.
    I am quite sure I’ll learn a lot of new stuff right here!
    Good luck for the next!

    Stop by my web-site :: 꽁머니

  16. CurtisIncix表示:

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

  17. DarioTob表示:

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

  18. Hi would you mind letting me know which web host you’re using?

    I’ve loaded your blog in 3 completely different internet browsers and I must say this
    blog loads a lot faster then most. Can you suggest a good internet hosting provider at a reasonable price?

    Many thanks, I appreciate it!

  19. HenrydeT表示:

    pin up казино пин ап кз pinup-kazi.kz

發佈留言

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