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,141,498 Responses

  1. How To Save Money On American Style Fridge Freezer Freestanding fridge freezer

  2. Volvo vnl key表示:

    The Most Common Mistakes People Do With Volvo V70 Key Volvo vnl key

  3. ElmerWes表示:

    Viagra without a doctor prescription Canada Cheapest place to buy Viagra sildenafil online

  4. I like the helpful information you provide in your articles. I?ll bookmark your weblog and check again here frequently. I am quite sure I will learn many new stuff right here! Good luck for the next!

  5. 5 Killer Quora Answers To Double Glazing Repairs Leeds double glazing Repairs leeds

  6. ElmerWes表示:

    Cheap Viagra 100mg Generic Viagra online buy viagra here

  7. The Double Glazing Window Repairs Awards: The Most Stunning, Funniest, And The Most Bizarre Things We’ve Seen Double glazed Window repairs near me

  8. GeorgeSep表示:

    Kamagra tablets: super kamagra – Kamagra tablets

  9. DavidOwelo表示:

    http://cenforce.pro/# Cenforce 100mg tablets for sale

  10. You’ll Never Guess This Leeds Windows’s Tricks upvc window repair leeds

  11. CharlesDog表示:

    https://levitrav.store/# Vardenafil buy online

  12. CharlesDog表示:

    https://cialist.pro/# Buy Tadalafil 10mg

  13. ElmerWes表示:

    Purchase Cenforce Online Buy Cenforce 100mg Online Buy Cenforce 100mg Online

  14. JamesNow表示:

    Viagra Tablet price: Buy Viagra online cheap – Cheapest Sildenafil online

  15. GeorgeSep表示:

    Cenforce 150 mg online: Buy Cenforce 100mg Online – Cenforce 150 mg online

  16. ElmerWes表示:

    Cheap Sildenafil 100mg viagras.online generic sildenafil

  17. 5 Killer Quora Answers To Standing Desk Treadmill Standing Desk Treadmill

  18. Slot Pulsa表示:

    Hi there ѡould you mind letting me know which web
    host үoᥙ’гe worқing ᴡith? I’ve loaded ʏour blog іn 3 ϲompletely different
    ingernet browsers and I muust sаy this blog
    loads a ⅼot fastger tһen most. Can you suggest a
    good internet hosting provider at a fair ρrice? Thankѕ a lot, І ɑppreciate it!

    Als᧐ visit mү web blog – Slot Pulsa

  19. Saab 900 key表示:

    What’s Holding Back In The Saab Replacement Keys Industry?

    Saab 900 key

  20. 7 Essential Tips For Making The Most Of Your Online Charity Shop Uk Clothes Ping Pong Racket Kit

  21. JamesNow表示:

    Sildenafil 100mg price: Buy generic 100mg Viagra online – Cheap generic Viagra online

  22. GeorgeSep表示:

    п»їkamagra: kamagra pills – Kamagra 100mg

  23. ElmerWes表示:

    Kamagra 100mg price kamagra pills Kamagra Oral Jelly

  24. 15 Shocking Facts About Stoves Defra That You Didn’t Know About defra accredited stoves [Spectr-sb116.ru]

  25. See What Link Daftar Gotogel Tricks The Celebs Are Utilizing Link daftar Gotogel

  26. 5 Tools Everyone In The Designer Handbags Large Industry Should Be Making Use Of Designer handbags vintage

  27. ElmerWes表示:

    Buy Vardenafil 20mg Cheap Levitra online Buy Vardenafil 20mg online

  28. I like the valuable information you provide in your articles. I will bookmark your blog and check again here regularly. I am quite certain I will learn a lot of new stuff right here! Good luck for the next!

  29. TylerPhona表示:

    http://levitrav.store/# Levitra 10 mg best price

  30. 10 Facts About Double Bed Mattress That Will Instantly Put You In An Optimistic
    Mood Double mattress extra firm

發佈留言

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