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,245,703 Responses

  1. DarrenUnjuh表示:

    https://cytpremium.com/# buy cytotec pills online cheap

  2. BrandenSlomy表示:

    over the counter prednisone cream: cheap prednisone – prednisone for sale in canada

  3. как вывести из запоя против воли http://www.sergiev.0pk.me/viewtopic.php?id=3461/ .

  4. Dorine表示:

    Thank you for the auspicious writeup. It in fact was a amusement account it.
    Look advanced to far added agreeable from you!
    However, how could we communicate?

  5. AlbertDuM表示:

    plavix medication: Plavix 75 mg price – Plavix generic price

  6. BrandenSlomy表示:

    where can i buy cheap clomid online: clomid – can i get generic clomid prices

  7. Helpful info. Lucky me I found your web site by chance, and I am stunned why this coincidence didn’t took place in advance!
    I bookmarked it.

  8. DRIVE BEт表示:

    В июле 2014 года была добавлена функция, известная как «Geofilters»,
    которая позволяет использовать специальные графические оверлеи, если пользователь находится в определённом географическом
    местоположении, например, в городе.
    Существуют ограничения для детей младше 16 лет,
    например, переводы Swish в размере
    максимум 2000 крон в день. Один снэп в день может быть воспроизведен бесплатно.
    По статистике Snapchat на май
    2014 года, пользователями
    приложения отправлялось по 700 млн
    фото и видео в день, тогда же контент
    из Snapchat Stories просматривался 500
    млн раз в день. В дни трансляций матчей Лиги Чемпионов (за исключением случаев, когда в игровой день
    проходил один матч), а также по субботам и воскресеньям в период активного футбольного
    сезона в Европе (с сентября по май) вещание телеканала продолжалось до примерно 2:30 ночи.
    Согласно опубликованной статистике Snapchat, по состоянию на май 2015 года пользователи
    приложения отправляли 2 миллиарда видеороликов в
    день, достигнув 6 миллиардов к ноябрю.
    К 2016 году количество ежедневных просмотров видео в Snapchat достигло 10 миллиардов.
    Snapchat начал интеграцию между Bitmoji и Snapchat, позволяя
    пользователям связывать свои учётные
    записи и использовать наклейки Bitmoji в виде снимков и сообщений.
    В июле 2016 года Snapchat купил Bitstrips и принадлежавшее компании приложение Bitmoji, которое позволяет пользователям создавать наклейки с персонализированными аватарами мультфильмов.

    Here is my site DRIVE BEт

  9. DarrenUnjuh表示:

    https://iverfast.com/# ivermectin tablet 1mg

  10. BernardMop表示:

    buy Lisinopril online lisinopril1st cheapest Lisinopril

  11. BrettVup表示:

    Link Building Services
    ]link building seo services
    Hey there, future SEO rockstar! Ready to skyrocket your business to new heights? Let’s dive into the exciting world of link building services that can seriously amp up your online presence. Whether you’re just starting out or looking to boost your existing strategy, we’ve got the lowdown on the coolest methods out there—think crowd marketing, guest posting, PBNs, and more!
    Why Link Building is Your New Best Friend
    First things first: why should you care about link building? Well, in the digital universe, backlinks are like high-fives from other websites telling search engines, “Hey, this site is pretty cool!” The more quality high-fives you get, the more popular you become in the eyes of Google and friends. And you know what that means—higher rankings, more traffic, and a whole lot of new customers knocking on your virtual door.
    Guest Posting: Share Your Voice with the World
    Imagine getting to share your ideas on someone else’s platform and gaining their audience’s trust. That’s guest posting in a nutshell! You create killer content for other websites in your niche, and in return, you get a sweet backlink to your site. Why It’s Cool: You tap into new audiences, build your brand’s credibility, and boost your SEO. Pro Tip: Make sure your content is top-notch and adds real value. No one likes fluff!
    Crowd Marketing: Join the Conversation
    Crowd marketing is all about jumping into online communities—forums, social media groups, you name it—and sharing your wisdom. It’s not about shameless plugs; it’s about being genuinely helpful. Why It’s Cool: You build relationships, establish yourself as an expert, and earn organic backlinks. Pro Tip: Be authentic. People can spot a fake from a mile away.

  12. BrandenSlomy表示:

    clomid without dr prescription: cheap clomid – order cheap clomid

  13. JacobLoody表示:

    mtucizone.ru — Узнайте больше о нашем подходе к дизайну и производству кухонь.

  14. These arе actuɑlly greаt ideas in aboսt blogging.
    You haѵe touched ѕome fastidious factors һere. Ꭺny way keеp up wrinting.

    Here is my web page – Áo dạ nữ dáng dài

  15. I’m not sure exactly why but this blog is loading very slow for me.
    Is anyone else having this problem or is it a problem on my end?
    I’ll check back later on and see if the problem still exists.

    Have a look at my web site coffee Print Hats

  16. BrandenSlomy表示:

    buy generic clomid without insurance: clomid – clomid buy

  17. BrandenSlomy表示:

    buy amoxil: amoxil – order amoxicillin no prescription

  18. Jerome Miles表示:

    Tôi chưa bao giờ phải chờ đợi lâu khi rút tiền từ tài khoản tại B52 Club B52Club

發佈留言

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