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,943 Responses

  1. Howdy, I believe your web site may be having web browser compatibility issues.
    When I take a look at your website in Safari, it looks fine but when opening
    in I.E., it has some overlapping issues.

    I merely wanted to provide you with a quick heads up!
    Besides that, wonderful blog!

  2. What’s up to all, how is all, I think every one is getting more
    from this site, and your views are good in support of new users.

  3. Oh my goodness! Amazing article dude! Thank you so much, However I
    am going through difficulties with your RSS. I don’t
    understand the reason why I cannot subscribe to it.

    Is there anyone else having identical RSS issues? Anybody
    who knows the answer will you kindly respond? Thanks!!

  4. Awesome site you have here but I was curious if you knew of
    any discussion boards that cover the same topics discussed in this article?

    I’d really like to be a part of community where I can get feed-back from other experienced individuals that share the same interest.

    If you have any suggestions, please let me know.
    Many thanks!

  5. stitchpvp.com表示:

    Wow, this piece of writing is nice, my sister is analyzing these kinds of things, therefore I am going to inform her.

  6. ask.fm表示:

    This piece of writing provides clear idea for the new people of blogging,
    that really how to do blogging.

  7. knee joint表示:

    Thanks very nice blog!

    Look at my blog post :: knee joint

  8. fenster表示:

    Das Material des Randprofils und das Polyisobutylen müssen den Randverbund gegenüber Füllgas,
    Umgebungsluft und Wasserdampf abdichten. Nach der Befüllung
    des Scheibenzwischenraums mit Gas wird diese Fuge zwischen dem um etwa 3 mm eingerückten Abstandhalter und den überstehenden Glaskanten mit pastösem Polyurethan, Silikon oder speziellen Polysulfiden gefüllt.
    Bei Fassadenelementen, die hier dem UV-Licht ausgesetzt sind, wird meist
    schwarzes Silikon statt Butyl, Polyurethan oder Polysulfid verwendet, das allerdings deutlich gasdurchlässiger ist.
    Der Rahmen aus Abstandhalter-Profilen wird etwas kleiner gefertigt, als die Glasscheiben, auf die weise, dass nach dem
    Einkleben des Glashalters eine U-förmige Fuge zwischen den Glasrändern verbleibt.
    Hier kann etwa eine Weichmacherwanderung oder ein Kontakt mit schädlichen Ölen oder anderen Stoffen stattfinden. Problematisch sind Unverträglichkeiten zwischen den Dichtstoffen, die zur
    Eindichtung der Isolierglasscheibe im Fensterrahmen oder als
    Dichtung des Stoßes zwischen zwei Scheiben Verwendung finden, und
    den Dichtstoffen im Randverbund. Ebenso können auch schädliche Wechselwirkungen zwischen dem Kunstoffmaterial der Verglasungs-Klötze und dem Randverbund auftreten, insbesondere,
    wenn die Klötze Styrolverbindungen enthalten.

  9. thermopapier表示:

    Bitte wählen Sie die folgenden Bonrollen-Kategorien oder nutzen unseren Filter im Weiteren auf der Seite.
    Fragen, Sonderwünsche oder individuelles Angebot? Frag mich welche
    Bonrolle passt? Spezialgrößen oder Bonrollen in individuellem Design? Lieferung
    an verschiedene Filialen? Besonders hohe Stückzahlen zu Palettenpreisen?
    Bitte nutzen Sie unseren Filter, so Suche nach der richtigen Bonrolle weiter einzugrenzen. Die Kenngrößen 1, 3 und
    4 können Sie bei einer Ihnen vorliegenden Bonrolle leicht nachmessen. Anschließend können Sie den Filter bei ALLCASH24 nutzen Pi mal Daumen passenden Bonrollen zu identifizieren. Bitte beachten Sie, dass immer der maximal mögliche Rollendurchmesser angegeben / gemessen wird.
    Achten Sie bei der Rollenbreite bitte auf hohe Genauigkeit im
    Millimeter-Bereich. Es passen immer auch Rollen mit einem kleineren Durchmesser in Ihr
    Gerät. Dann schreiben Sie uns einfach eine kurze Nachricht.
    Unsere Mitarbeiter melden sich schnellstmöglich bei Ihnen und suchen die passende Bonrolle für Ihr Gerät heraus.
    Bonrollen sind nicht gleich Bonrollen. Sie wissen nicht welche
    Rolle in Ihr Gerät passt? Kommen zu einige Unterschiede, mit denen man sich vor dem Kauf auseinandersetzen sollte.
    Wenn Ihre Fragen hier klärungsbedürftig werden, stehen wir Ihnen auch gerne
    telefonisch oder per E-Mail zur Verfügung.

  10. pastelink.net表示:

    I read this paragraph fully on the topic of the comparison of newest and preceding
    technologies, it’s amazing article.

  11. I think the admin of this site is truly working hard for his
    web site, since here every information is quality based
    stuff.

  12. I couldn’t refrain from commenting. Perfectly written!

  13. I seriously love your blog.. Very nice colors & theme. Did
    you make this site yourself? Please reply back as I’m trying to create my own website and would love
    to know where you got this from or exactly what the theme is
    named. Thanks!

  14. Awesome! Its genuinely remarkable article, I have got much clear idea regarding from this article.

  15. adfoc.us表示:

    I’ve been exploring for a bit for any high quality articles or
    weblog posts in this sort of space . Exploring in Yahoo I finally stumbled upon this web site.
    Reading this information So i am satisfied to exhibit that I have an incredibly good uncanny feeling I discovered just what I
    needed. I so much without a doubt will make sure to do not
    fail to remember this website and give it a look on a continuing
    basis.

  16. I think the admin of this website is truly working hard
    for his web page, as here every information is quality based stuff.

  17. slot表示:

    You actually make it appear really easy with your presentation but I
    to find this matter to be actually something which I feel I would never
    understand. It seems too complicated and extremely vast for me.
    I am having a look ahead on your next publish, I’ll attempt to get the
    hold of it!

  18. Yesterday, while I was at work, my cousin stole my
    apple ipad and tested to see if it can survive
    a 30 foot drop, just so she can be a youtube sensation. My apple ipad is now broken and she has 83 views.
    I know this is entirely off topic but I had to share it with someone!

  19. atavi.com表示:

    Peculiar article, exactly what I was looking for.

  20. wonderful post, very informative. I’m wondering why the opposite
    experts of this sector don’t realize this.
    You must continue your writing. I am sure, you have a huge readers’ base already!

  21. Hi! This post couldn’t be written any better! Reading through this post reminds
    me of my previous room mate! He always kept
    chatting about this. I will forward this post to him. Pretty sure he will have a good read.
    Thanks for sharing!

  22. Remarkable! Its actually remarkable piece of writing, I have got much clear
    idea concerning from this paragraph.

  23. discuss表示:

    I could not resist commenting. Perfectly written!

  24. You could certainly see your enthusiasm within the article you write.
    The sector hopes for even more passionate writers such as you who are
    not afraid to say how they believe. All the time go
    after your heart.

  25. Howdy! This post could not be written much better! Looking through this
    post reminds me of my previous roommate! He constantly kept talking about this.
    I most certainly will send this post to him. Fairly certain he’ll have a very good read.
    I appreciate you for sharing!

  26. Good way of describing, and nice paragraph to take data about
    my presentation subject matter, which i am going to convey in academy.

  27. hubpages.com表示:

    Hello, i think that i saw you visited my blog so i came to “return the favor”.I am trying to
    find things to enhance my website!I suppose its ok to use some of your ideas!!

  28. Thank you for the good writeup. It in fact was a amusement account it.
    Look advanced to far added agreeable from you!
    By the way, how can we communicate?

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

  30. cleanmate qq2表示:

    Der dabei gesammelte Schmutz landet bei den meisten Modellen untrennbar dafür vorgesehenen Auffangbehälter, wie etwa bei den meisten Modellen des Herstellers iRobot.
    Ein paar versprengte Modelle verfügen dafür
    über einen Beutel. Fabrikate wie der ecovacs Robotics deebot oder der Xiaomi Roborock
    S6 sind neben ihrer Saugfunktion auch mit einer Wischfunktion ausgestattet, neben anderen der sie
    Hartböden ratz-fatz reinigen. Die Akkulaufzeit von herkömmlichen Saugrobotern bewegt sich zwischen 90 und
    160 Minuten. Die intelligente Navigation der Saugroboter
    verhindert die Kollision mit Hindernissen wie Möbeln oder Wänden und vermeidet gefährliche Abstürze über Kanten. Einige Geräte suchen sogar ohne dass man erst darum bitten muss
    ihre Ladestation auf, sobald der Akkustand niedrig ist.

    Die Preisspanne bewegt sich gemäß digitaler Steuerung, Bürsten, Wischfunktion und diversen Zusatzprogrammen zwischen 80 Euro
    und 1.600 Euro. Führende Hersteller von Saugrobotern sind iRobot, Xiaomi oder Ecovacs.
    Ob Alleinstehende oder Großfamilien – in dieser Vielfalt findet jeder einen passenden Saugroboter.

    Charakteristisch für die Großzahl der Saugroboter
    ist die flache Bauweise.

發佈留言

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