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...

912,950 Responses

  1. RobertaRous表示:

    http://sildenafiliq.com/# buy viagra here

  2. Pretty great post. I simply stumbled upon your weblog and wished to
    say that I have truly enjoyed browsing your blog
    posts. After all I’ll be subscribing in your rss feed and
    I am hoping you write once more soon!

  3. Isaacwem表示:

    cheap kamagra: super kamagra – Kamagra 100mg

  4. Very energetic blog, I liked that a lot. Will
    there be a part 2?

  5. RobertaRous表示:

    http://sildenafiliq.xyz/# Viagra online price

  6. avodart buy表示:

    Drugs information leaflet. Short-Term Effects.
    avodart
    Best news about medicine. Read here.

  7. DanielElorp表示:

    buy Viagra online cheapest viagra Generic Viagra online

  8. для наиболее продвинутых игроков доступны столы с в достаточной степени proplayredstarpoker.ru высокими лимитами $50/$100.

    Also visit my blog post … https://proplayredstarpoker.ru/

  9. DanielElorp表示:

    Generic Viagra for sale buy viagra online buy Viagra online

  10. DanielElorp表示:

    buy viagra here buy viagra online Viagra without a doctor prescription Canada

  11. DanielElorp表示:

    Generic Viagra for sale generic ed pills cheap viagra

  12. ChesterAsynC表示:

    Cialis without a doctor prescription: cheapest cialis – Buy Tadalafil 20mg

  13. ChesterAsynC表示:

    sildenafil online: sildenafil iq – Viagra Tablet price

  14. RobertaRous表示:

    http://sildenafiliq.com/# Cheap Viagra 100mg

  15. RobertaRous表示:

    https://sildenafiliq.com/# Generic Viagra for sale

  16. Drug information. What side effects?
    proscar
    Some news about medicine. Read here.

  17. Excellent blog here! Also your site loads up fast! What host are
    you using? Can I get your affiliate link to your host?
    I wish my website loaded up as fast as yours lol

  18. RobertaRous表示:

    https://sildenafiliq.xyz/# buy Viagra over the counter

  19. RalphRem表示:

    http://kamagraiq.com/# п»їkamagra

  20. Hey There. I found your blog using msn. This is an extremely well
    written article. I’ll be sure to bookmark it and return to read more of your useful
    information. Thanks for the post. I will definitely return.

  21. ChesterAsynC表示:

    cheap kamagra: Kamagra gel – Kamagra Oral Jelly

  22. DanielElorp表示:

    buy kamagra online usa Kamagra Oral Jelly Price Kamagra tablets

  23. Isaacwem表示:

    Cialis 20mg price: tadalafil iq – Generic Cialis price

  24. RobertaRous表示:

    https://tadalafiliq.shop/# Tadalafil Tablet

  25. Kundernas表示:

    When I initially commented I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment.
    Is there any way you can remove me from that service? Cheers!

    Review my webpage; Kundernas

  26. DanielElorp表示:

    Sildenafil Citrate Tablets 100mg sildenafil iq Viagra Tablet price

發佈留言

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