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,665,271 Responses

  1. 10 Things Everyone Has To Say About Lost Car Key how To Replace Car Keys when lost

  2. WilliamDon表示:

    крупнейший сайт о технике и технологиях в Рунете. Ежедневно у нас выходит множество интересных новостей и обзоров
    formobile.top
    https://formobile.top/ – новости смартфонов 2025

  3. WilliamDon表示:

    Смартфоны. Читайте последние новости на тему в ленте новостей на сайте
    formobile.top
    https://formobile.top/ – новости мобильных телефонов

  4. WilliamDon表示:

    Новости мобильных телефонов. Анонсы новых моделей и обновления старых. Слухи, концепты, первые утечки фотографий и даже рендеров или фан-концептов. formobile.top
    https://formobile.top/ – новости мобильных телефонов

  5. What’s The Current Job Market For SEO Company In Bristol Professionals?

    Seo company in bristol (maps.google.com.qa)

  6. WilliamDon表示:

    крупнейший сайт о технике и технологиях в Рунете. Ежедневно у нас выходит множество интересных новостей и обзоров
    formobile.top
    https://formobile.top/ – новости смартфонов

  7. What’s up, I log on to your blogs on a regular basis.
    Your writing style is witty, keep doing what
    you’re doing!

  8. WilliamDon表示:

    крупнейший сайт о технике и технологиях в Рунете. Ежедневно у нас выходит множество интересных новостей и обзоров
    formobile.top
    https://formobile.top/ – топ смартфонов с беспроводной зарядкой

  9. Charlesbot表示:

    https://fastpillsformen.com/# Viagra tablet online

  10. 11 “Faux Pas” That Are Actually Okay To Make With Your Replacement Keys For Car
    Key replacements For Cars

  11. WilliamDon表示:

    Новости мобильных телефонов. Анонсы новых моделей и обновления старых. Слухи, концепты, первые утечки фотографий и даже рендеров или фан-концептов. formobile.top
    https://formobile.top/ – новости смартфонов 2025

  12. WilliamDon表示:

    Мир Смартфонов. Новости и обзоры. Анонсы новинок. Продажа смартфонов и планшетов. formobile.top
    https://formobile.top/ – топ смартфонов бюджетных

  13. BrettTIT表示:

    Viagra Tablet price: FastPillsForMen – Buy generic 100mg Viagra online

  14. How Asbestos Death Compensation Propelled To The Top Trend On Social Media Asbestos lawsuits

  15. сравнение процессоров amd http://topcpu.ru .

  16. Andrew Larson表示:

    I love how co-managed IT support brings together diverse expertise to tackle complex problems. It feels like having a safety net for our tech needs! Find out how it works at Onsite IT Support

  17. Barrybib表示:

    cheapest viagra: over the counter sildenafil – Generic Viagra online

  18. Jacques表示:

    Learn What Harrow Door And Window Tricks The Celebs Are Using double glazed window repair (Jacques)

  19. I enjoy looking through an article that can make men and women think.
    Also, thanks for allowing for me to comment!

  20. Joseph Becker表示:

    Appreciate the detailed information. For more, visit استخدام نیروی نمایشگاهی

  21. Charlesbot表示:

    http://fastpillseasy.com/# cheap ed treatment

  22. Fantastic point about inspecting roofs annually; it can save homeowners from unexpected costs later down the line! roof repairs near me

  23. Unquestionably imagine that that you said. Your favorite reason appeared
    to be on the web the simplest thing to remember of.

    I say to you, I certainly get annoyed while other people think about concerns
    that they just do not know about. You controlled to
    hit the nail upon the highest and also outlined out the entire thing without having side-effects , other people can take a signal.
    Will probably be back to get more. Thanks http://Wineandentertaining.com/__media__/js/netsoltrademark.php?d=khuortho-Ce.Ac.kr%2Fg5%2Fbbs%2Fboard.php%3Fbo_table%3Dfree%26wr_id%3D1728826

  24. Best decision ever choosing these guys over competitors—look no further than ### Chicago auto transport

  25. This was a great article. Check out signature drinks Hibernia bar for more

  26. WilliamDon表示:

    Мир Смартфонов. Новости и обзоры. Анонсы новинок. Продажа смартфонов и планшетов. formobile.top
    https://formobile.top/ – топ смартфонов бюджетных

發佈回覆給「Andrew Larson」的留言 取消回覆

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