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,251,449 Responses

  1. discuss表示:

    Heya i’m for the primary time here. I came across this
    board and I find It truly useful & it helped me out a lot.
    I hope to provide one thing again and aid others like you aided me.

  2. Pretty nice post. I simply stumbled upon your blog and wished to say
    that I have truly enjoyed browsing your weblog posts. In any case I’ll be subscribing on your rss feed and I’m hoping you write
    once more very soon!

  3. energy表示:

    Hmm is anyone else experiencing problems with the images on this blog loading?
    I’m trying to determine if its a problem on my end or if it’s the blog.
    Any suggestions would be greatly appreciated.

  4. I am not sure where you’re getting your information, but good
    topic. I needs to spend some time learning more or understanding more.
    Thanks for wonderful info I was looking for this info for my mission.

  5. Nydia表示:

    Wow that was unusual. I just wrote an very long comment but after I clicked submit my comment
    didn’t appear. Grrrr… well I’m not writing
    all that over again. Anyway, just wanted to say excellent
    blog!

  6. Hi there it’s me, I am also visiting this website daily, this website is genuinely good and the visitors are in fact
    sharing good thoughts.

  7. Hi there would you mind letting me know which web host you’re working
    with? I’ve loaded your blog in 3 different internet browsers and I must
    say this blog loads a lot quicker then most. Can you
    recommend a good web hosting provider at a fair price? Kudos, I appreciate it!

  8. I do not even understand how I finished up right here, but I believed this post was once good.
    I don’t know who you’re however definitely you’re going to a famous blogger should you are not already.
    Cheers!

  9. Hmm is anyone else having problems with the pictures on this blog
    loading? I’m trying to figure out if its a problem on my end
    or if it’s the blog. Any feedback would be greatly appreciated.

  10. staubsauger表示:

    Systematische Navigation, eine App und ein großaufgebot von gute Amazon Bewertungen. Tesvor arbeitet
    aktuell daran ihr Sortiment auszubauen. Leider hat der X500 nichts unversucht lassen Schwächen in unserem Roboter Staubsauger
    Test gezeigt. Boris und ich sind mit null Erwartungen an den 150 Euro billigen Robo gegangen.
    Der Medion MD18500 ist oft auch als Aldi Saugroboter bekannt.
    Lustigerweise war das, war wir gesehen haben, sogar recht ordentlich.
    Ungemein einen Raum in Serie sollten Sie dem Medion Saugroboter zwar nicht zutrauen.
    Der Robovac 11s von Eufy geht gerade einfach nur durch
    die Decke. Aber hey, zeigen Sie mir ein Modell für 150 Euro, das besser ist.
    Wir waren wirklich absolut gehyped auf den Roboter und haben sogar extra auf das Upgrade – den Eufy Robovac 11s Max –
    gewartet. Wir konnten den Hype absolut nie verstehen. Und was soll ich sagen? Der Roboter fährt im Chaos Modus,
    besitzt keine App und reinigt ok.

  11. Hmm is anyone else experiencing problems with
    the images on this blog loading? I’m trying to find out if its a problem on my end
    or if it’s the blog. Any feedback would be greatly appreciated.

  12. These are really impressive ideas in concerning blogging.
    You have touched some pleasant points here.

    Any way keep up wrinting.

  13. I’m not sure exactly why but this weblog is loading incredibly 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.

  14. discuss表示:

    Hi! Do you know if they make any plugins to protect
    against hackers? I’m kinda paranoid about losing everything I’ve worked hard
    on. Any recommendations?

  15. Hurrah, that’s what I was looking for, what a stuff!
    existing here at this website, thanks admin of this web page.

  16. live casino表示:

    I am regular reader, how are you everybody? This piece of writing posted at this site is genuinely good.

  17. Hello my family member! I wish to say that this article is
    amazing, nice written and come with approximately all vital infos.
    I’d like to look more posts like this .

  18. Thanks for the auspicious writeup. It if truth be told was
    a entertainment account it. Glance complicated to more added agreeable from you!
    However, how could we keep up a correspondence?

  19. prediksi hk表示:

    I’m really impressed with your writing skills as well as with the layout
    on your blog. Is this a paid theme or did you modify
    it yourself? Either way keep up the nice quality writing, it’s rare to see a nice blog like this one these days.

  20. Thanks for one’s marvelous posting! I definitely enjoyed reading it,
    you are a great author. I will remember to bookmark your blog and will eventually come back in the future.
    I want to encourage you to definitely continue your great job, have a nice holiday weekend!

  21. EC Cashrollen表示:

    Einen Eigenbeleg schreiben Sie nun in null Komma nichts mit unserem Eigenbeleg-Generator.

    Kostenlos einen professionellen Eigenbeleg schreiben kann so einfach sein! Das Herunterladen ist absolut
    kostenfrei für Sie und der Eigenbeleg enthält keine Werbung!
    1. Einstellungen wie z.B. Laden Sie den fertig erstellten Eigenbeleg als PDF-Eigenbeleg herunter
    und drucken Sie diesen dann einfach aus. So schreiben Sie
    Ihre Eigenbelege in Zukunft noch schneller. Dieser Eigenbeleggenerator funktioniert auch auf Tablets und Smartphones.
    Tipp: Speichern Sie die eingegebenen Daten fürt nächste Mal
    unzertrennlich Cookie! Bitte beachten Sie, dass Sie die Eingabemaske ggf.

    seitlich scrollen müssen, um alle Inhalte verändern zu können. Passen Sie
    die nachfolgenden Felder in unserem Muster-Eigenbeleg an, klicken Sie den Button „PDF- Eigenbeleg jetzt downloaden” und
    schon ist Ihr Eigenbeleg erstellt. Unser Eigenbeleg-Generator
    speichert die ihrer eingegebenen Daten niemals auf unserem Server, so ist
    der Datenschutz zu jeder Zeit gewährleistet. Lesen Sie als
    nächstes mehr über das Thema „ Eigenbeleg schreiben”.
    Dezimaltrennzeichen Hinweis: die Tausender- und Dezimaltrennzeichen wirken sich nur auf den PDF-Beleg aus.
    Daten im Eigenbeleg speichern? Noch mehr Dokumente schreiben? Sie die eingegebenen Daten kostenlos
    unzerteilbar Cookie speichern! Zusätzlich können Sie Ihre Kunden verwalten und
    Zahlungseingänge nachhalten. Testen Sie FirstBill, um professionelle Dokumente mit Logo zu schreiben. Ist die
    Ausgabe tatsächlich beruflich bzw. betrieblich
    bedingt und erscheint die Höhe glaubhaft, wird der Eigenbeleg standardmäßig vom Finanzamt anerkannt.
    Es ist keine vorgeschriebene Form des Eigenbeleges, er kann gegebenenfalls auch handschriftlich erstellt
    werden. Ein Eigenbeleg dient als Ersatz für eine nicht ausgestellte
    oder verloren gegangene Quittung oder Rechnung.
    Sehr viel komfortabler und übersichtlicher ist aber in jedem Falle das Ausfüllen durch
    des Eigenbeleg-Generators. Grund fürs Ausstellen des Eigenbeleges (z.B.
    Der Vorsteuerabzug ist bei einem Eigenbeleg grundsätzlich nicht vorstellbar.
    Wir sind stetig bemüht, Ihnen das Schreiben Ihrer Belege mit unserem Eigenbelegsgenerator noch einfacher leistbar.
    Gemäß § 15 UStG ist hierfür eine ordentliche Rechnung notwendig.
    Bitte sagen Sie uns Ihre Meinung!

  22. When I originally left a comment I seem to have clicked the -Notify me when new comments are added-
    checkbox and now each time a comment is added I
    get four emails with the exact same comment. There has
    to be a way you are able to remove me from that service?
    Kudos!

  23. Hello there, just became alert to your blog through Google, and found that it is
    really informative. I?m gonna watch out for brussels.
    I will appreciate if you continue this in future.
    Many people will be benefited from your writing. Cheers!

  24. Heya i am for the first time here. I came across this board and I in finding
    It truly useful & it helped me out much. I hope
    to present something back and help others such as you
    aided me.

  25. cleanmate qq2表示:

    Systematische Navigation, eine App und eine Menge gute Amazon Bewertungen. Tesvor arbeitet aktuell daran ihr Sortiment auszubauen. Leider hat
    der X500 immer wieder Schwächen in unserem Roboter Staubsauger Test
    gezeigt. Boris und ich sind mit null Erwartungen an den 150
    Euro billigen Robo gegangen. Der Medion MD18500
    ist oft auch als Aldi Saugroboter bekannt. Lustigerweise war das,
    war wir gesehen haben, sogar recht ordentlich. Ungebührlich
    einen Raum nacheinander sollten Sie dem Medion Saugroboter
    zwar nicht zutrauen. Der Robovac 11s von Eufy geht gerade einfach nur durch die Decke.
    Aber hey, zeigen Sie mir ein Modell für 150 Euro, das
    besser ist. Wir waren wirklich absolut gehyped auf den Roboter und haben sogar extra aufs Upgrade – den Eufy Robovac 11s Max – gewartet.
    Wir konnten den Hype nie verstehen. Und was soll ich sagen? Der Roboter fährt
    im Chaos Modus, besitzt keine App und reinigt ok.

  26. Great article! That is the type of information that are meant to
    be shared around the net. Disgrace on Google for no longer positioning
    this publish higher! Come on over and seek advice from my site .
    Thanks =)

  27. Richie表示:

    I couldn’t refrain from commenting. Exceptionally well written!

  28. Hey excellent blog! Does running a blog
    such as this require a great deal of work?

    I’ve virtually no understanding of programming however I had been hoping to start my own blog soon. Anyway, should you have any recommendations or techniques for new blog owners please share.
    I understand this is off topic but I just needed to ask.
    Thanks!

  29. This website was… how do I say it? Relevant!! Finally I have found something
    that helped me. Kudos!

    Here is my blog :: knee pain relief

  30. Hi just wanted to give you a quick heads up and let you know a few of the images aren’t loading correctly.
    I’m not sure why but I think its a linking issue.
    I’ve tried it in two different web browsers and both show the same outcome.

發佈留言

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