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,248,656 Responses

  1. Dacia Pucillo表示:

    price range from one location to another

  2. klcc penthouse with private pool

  3. Do you mind if I quote a couple of your articles as long as I provide credit and
    sources back to your webpage? My blog is in the very same niche as
    yours and my visitors would definitely benefit from
    some of the information you provide here. Please let me know if this
    okay with you. Thanks!

  4. Можно оценить работу чат-бота и решить,
    подходит ли он вам.

  5. post507044表示:

    I blog quite often and I really thank you for your knowledge. This great article has really peaked my interest. I’m going to bookmark your site and continue to keep checking for new information about once a week. I subscribed to your Feed as well.

    Feel free to surf to my web blog http://Www.adtgamer.com.br/showthread.php?p=507044

  6. Clyde Ramirez表示:

    This was highly educational. More at Dental Architects

  7. AlbertDuM表示:

    buy plavix: buy plavix online – п»їplavix generic

  8. Caleb Weber表示:

    Appreciate the comprehensive advice. For more, visit mobile tire installation

  9. cheap land for sale malaysia

  10. Таким образом, вы обнаружите, что получаете прибыль от Интернета, возможно, пока вы спите! Получайте прибыль из Интернета, работая внештатным видеоредактором для каналов YouTube. Прибыль, которую вы получаете от твитов, зависит от количества ваших подписчиков в Твиттере, поэтому чем больше количество подписчиков, тем выше прибыль. Вы можете зарабатывать сотни долларов в месяц, если у вас есть тысячи подписчиков, вы можете попробовать сами, не беспокойтесь, что это один из самых прибыльных сайтов в Интернете. Вы можете использовать эти сайты со многими онлайн-платформами, такими как YouTube, форумы, собственный блог и многие другие платформы. Он может включать новости, развлекательный и спортивный контент, справочную информацию, форумы, чаты, онлайн-игры, услуги электронной почты, интернет-банкинг и многое другое. Если вы еще не начали создавать свой список адресов электронной почты, вам следует переосмыслить его. Вы можете начинать каждый день с того, что уделяете некоторое время работе над электронной книгой, которую продаете как услугу, приносите пользу другим и делитесь своим опытом и идеями. Вы можете подать предложение, в котором вы докажете, что обладаете достаточными способностями и навыками, и вас могут выбрать среди претендентов, и вы выиграете сделку и заработаете деньги в Интернете. Вы можете начать изучать эту область сейчас и подать заявку, чтобы получить необходимый опыт. http://telegram.pixxxel.ru/

  11. Digital advertising is essential for agencies these days. I came upon some remarkable elements on Local SEO that in truth helped me have an understanding of the state-of-the-art methods

  12. Oil Evex表示:

    Way cool! Some very valid points! I appreciate you penning
    this write-up and also the rest of the site is also really good.

  13. Hello, its nice piece of writing regarding media print, we all be familiar with media is
    a fantastic source of information.

  14. Michael Memos表示:

    lifestyle prestige glamour and services most important to consider when buying

  15. AlbertDuM表示:

    cheapest Lisinopril: buy Lisinopril online – cheapest Lisinopril

  16. Broderick表示:

    Searching For Inspiration? Try Looking Up Cheap Electric Wheelchair transportable
    electric wheelchair (Broderick)

  17. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр lg в москве, можете посмотреть на сайте: официальный сервисный центр lg
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  18. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали официальный сервисный центр lg, можете посмотреть на сайте: сервисный центр lg
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. BrandenSlomy表示:

    amoxicillin 500 tablet: Amoxicillin for sale – amoxicillin order online

  20. HiOP表示:

    Swedish Massage HiOP

  21. BernardMop表示:

    buy Lisinopril 1st lisinopril 15mg buy Lisinopril 1st

  22. BrandenSlomy表示:

    can i order generic clomid: where can i get cheap clomid for sale – can i order cheap clomid tablets

  23. Your Family Will Thank You For Having This Adult Store Near Me masturbation adult toy Deal

發佈留言

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