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,229,397 Responses

  1. Thanks for sharing your thoughts. I truly appreciate your efforts
    and I am waiting for your further write ups thanks once again.

  2. ski fahren表示:

    Informationen dazu holt Ihr es empfiehlt sich direkt beim Veranstalter ein. Um auf alle Eventualitäten vorbereitet nicht
    vernünftig, solltet Ihr Euch vor Eurer Reise Informationen über Euren bestehenden Versicherungsschutz auswärtig einholen. Weltweite Reisebeschränkungen zur Verhinderung der
    Ausbreitung des Coronavirus sorgen dafür, dass weiterhin Airlines
    ganz unten bleiben und Hotels vorübergehend geschlossen sind.
    Brauche ich eine Auslandskrankenversicherung? Direkt informiert, wenns wieder losgeht!

    Das ganze übrigens nicht nur während der Corona-Pandemie, sondern grundsätzlich.

    Reisende tragen die Kosten der Tests – die
    beispielsweise für die Ein- und Rückreise oder eine vorzeitige Beendigung der Quarantäne erforderlich sein können – grundsätzlich selbst,
    solange diese nicht von einem Arzt verordnet wurden. Zudem bremst das Coronavirus gegebenenfalls das öffentliche Leben aus, was eine
    Reise erschwert. Doch irgendwann ist auch diese Krise überstanden und
    wir können uns endlich wieder darauf freuen,
    die Welt zu entdecken. Im Grunde seid Ihr mit Eurer Krankenversicherungskarte
    innerhalb Europas versichert, außerhalb Europas gilt der Versicherungsschutz
    normalerweise jedoch nicht. Um auf Nummer sicher zu gehen,
    empfehle ich Euch, Eure Versicherung zu kontaktieren und nachzuhaken, ob Euer Reiseziel durch den bestehenden Schutz gedeckt ist.
    Wer trägt die Kosten für Tests? Damit Ihr schon mal von Eurer nächsten Reise träumen könnt, empfehle ich
    Euch, durch unsere beliebtesten Urlaubsziele zu stöbern und Euch
    inspirieren zu lassen. Alternativ könnt Ihr Euch auch jederzeit vor einer Reise über eine
    spezielle Reiserücktrittsversicherung informieren sowie diese unkompliziert abschließen, um Euch für Euren nächsten Urlaub
    abzusichern. Für den Fall der Fälle bekommt
    Ihr aber auch von Eurem Reiseveranstalter die Möglichkeit, Euch kostenlos testen zu lassen. Eine Übersicht der ferner individuellen Regelungen aller Bundesländer findet Ihr
    auf der Webseite der Bundesregierung.

  3. Can I simply just say what a relief to find somebody that actually understands what
    they are talking about online. You actually know how to bring an issue to light
    and make it important. A lot more people should read
    this and understand this side of the story. I can’t believe you are not more popular given that you definitely have the gift.

  4. This website was… how do you say it? Relevant!! Finally I’ve found something which helped
    me. Kudos!

  5. I need to to thank you for this great read!! I absolutely loved every bit of it.
    I have got you saved as a favorite to look at new things you post…

  6. Greetings from Ohio! I’m bored at work so I decided
    to check out your site on my iphone during lunch break.
    I love the info you provide here and can’t wait to take a look when I get home.

    I’m amazed at how quick your blog loaded on my cell phone
    .. I’m not even using WIFI, just 3G .. Anyhow, awesome blog!

  7. I don’t know if it’s just me or if perhaps everyone else experiencing problems with your blog.
    It appears like some of the text in your content are running
    off the screen. Can someone else please comment and let me know if this
    is happening to them as well? This could be a problem with my browser because I’ve
    had this happen before. Thanks

  8. Hi, i believe that i noticed you visited my web site thus i came to
    return the prefer?.I am trying to find things to improve my web
    site!I assume its ok to make use of some of your ideas!!

  9. You need to be a part of a contest for one of the best sites on the net.
    I’m going to highly recommend this website!

  10. Slot Online表示:

    I blog quite often and I seriously appreciate your information. The article has really
    peaked my interest. I’m going to book mark your blog and
    keep checking for new details about once per week. I subscribed to your RSS
    feed too.

  11. If you are going for finest contents like myself, just go to see this web site daily because it gives quality contents,
    thanks

  12. If some one wants to be updated with most up-to-date technologies then he must be visit
    this website and be up to date everyday.

  13. Peculiar article, exactly what I needed.

  14. Oh my goodness! Impressive article dude! Thank you so much, However I am
    going through troubles with your RSS. I don’t understand
    why I cannot subscribe to it. Is there anyone else having the same RSS problems?
    Anyone who knows the answer will you kindly respond?
    Thanx!!

  15. Excellent post. I used to be checking constantly this weblog and
    I am impressed! Extremely helpful information particularly the last part 🙂 I maintain such
    info much. I was seeking this particular information for a very lengthy time.
    Thanks and good luck.

  16. Thanks in support of sharing such a nice thought, post is nice, thats why i have read it fully

  17. Truly when someone doesn’t know afterward its up to other users that
    they will help, so here it takes place.

  18. Appreciating the dedication you put into your website and in depth information you present.
    It’s nice to come across a blog every once in a while that isn’t the same
    outdated rehashed material. Excellent read! I’ve bookmarked your site and I’m adding your RSS feeds to
    my Google account.

  19. First of all I want to say awesome blog! I had a quick question that I’d like to ask if you don’t mind.
    I was curious to know how you center yourself and clear your mind before writing.
    I’ve had a hard time clearing my mind in getting my thoughts
    out there. I do take pleasure in writing but it just seems like the first
    10 to 15 minutes are generally wasted simply just trying to figure out how to begin. Any suggestions or tips?

    Thank you!

  20. We’re a group of volunteers and starting a new scheme
    in our community. Your website provided us with valuable information to work on. You’ve done
    a formidable job and our entire community will be thankful to you.

  21. I’m impressed, I must say. Seldom do I encounter
    a blog that’s equally educative and engaging, and without a doubt, you’ve hit the nail on the head.
    The issue is something not enough men and women are speaking intelligently about.
    Now i’m very happy that I came across this in my hunt
    for something relating to this.

  22. Hi to every , as I am actually keen of reading this
    webpage’s post to be updated on a regular basis. It contains pleasant data.

  23. It’s great that you are getting ideas from this piece of writing as well as from our argument made at this time.

  24. I have read a few good stuff here. Certainly worth bookmarking for revisiting.
    I wonder how a lot effort you set to create one of these wonderful informative website.

  25. Hello there! I know this is kind of off topic but I was wondering if you knew
    where I could locate a captcha plugin for my comment form?
    I’m using the same blog platform as yours and
    I’m having difficulty finding one? Thanks a lot!

  26. Hi would you mind stating which blog platform you’re working with?
    I’m looking to start my own blog soon but I’m having a tough
    time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your design seems different then most blogs
    and I’m looking for something unique.
    P.S Apologies for being off-topic but I had to ask!

  27. satta king表示:

    Appreciation to my father who informed me about this weblog, this blog is
    genuinely amazing.

  28. dribbble.com表示:

    I’m truly enjoying the design and layout of your website.
    It’s a very easy on the eyes which makes it much more enjoyable for
    me to come here and visit more often. Did you hire out a developer to create your theme?
    Great work!

  29. roomba 531表示:

    Zudem sei die Akkureichweite mit nur 83 Minuten deutlich schlechter und der Preis hoch.
    Immerhin durch seine starke Saugleistung, die vielen Sensoren und die Qualität konnte der Marken Saugroboter punkten. Da Vorwerk Kobold VR300 direkt
    vom Hersteller vertrieben wird, liegen uns dazu keine Kundenbewertungen unabhängiger Onlineshops vor.
    Vorwerk Kobold VR300 Saugroboter erhalten Sie exklusiv im
    Vorwerk-Onlineshop. Was ist ein Saugroboter? In der Mehrzahl Modelle sind flach genug gebaut, um auch unter niedrige Möbel saugen zu können. Produziert werden die Saugroboter in europa umso mehr von bekannten Haushaltsgeräteherstellern, wie Vorwerk oder Dyson. Staubsaugerroboter sind intelligente, meist runde Haushaltsgeräte mit
    einem Durchmesser von durchschnittlich 30 Zentimetern. In den USA, England und Asien kommen die Geräte
    dagegen eher von Herstellern, die innerhalb der Robotertechnologie zuhause sind, wie die
    iRobot Modelle oder Saugroboter von Xiaomi bzw.
    Roborock. Letztere eignen sich speziell für Nutzer ohne große Wohnung, da ihr Zick-Zack-Modus auf großen Flächen unglaublich viel Energie verbraucht.
    Im Handel sind Staubsaugerroboter mit Cloud-Anbindung
    und intelligenter Laser Navigation, mit Kamera und AI oder
    ohne WLAN mit Zufallsnavigation erhältlich. Wie funktioniert ein Saugroboter?
    Saugroboter arbeiten zahllose nach Art von eines Teppichreinigers und nutzen dazu mehrere rotierende Bürsten bzw.

    Walzen, die mit Gummilippen versehen sind.

  30. I have read so many articles concerning the blogger lovers but this post is genuinely a fastidious post, keep it up.

發佈留言

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