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

  1. Pretty great post. I just stumbled upon your weblog
    and wished to mention that I have truly loved browsing your weblog posts.

    After all I’ll be subscribing on your feed and I am hoping you
    write again soon!

  2. Hello this is somewhat of off topic but I was wondering if
    blogs use WYSIWYG editors or if you have to manually code with
    HTML. I’m starting a blog soon but have no coding knowledge so I wanted to get guidance
    from someone with experience. Any help would be greatly
    appreciated!

  3. Thanks for the marvelous posting! I quite enjoyed reading it, you may be a great author.
    I will ensure that I bookmark your blog and definitely will come back down the road.
    I want to encourage one to continue your great posts, have a nice
    afternoon!

  4. sport788 com表示:

    With havin so much content do you ever run into any problems of plagorism or
    copyright infringement? My website has a lot of completely unique
    content I’ve either authored myself or outsourced but it looks like a
    lot of it is popping it up all over the internet without my authorization. Do you know any ways to help prevent content from
    being stolen? I’d really appreciate it.

  5. Reina表示:

    I visited various blogs but the audio quality for audio songs present at this web site is genuinely marvelous.

  6. Right away I am going away to do my breakfast, once
    having my breakfast coming yet again to read
    other news.

  7. Welcher Baum eignet sich? Leider ist die Mühe des Umsetzens nicht immer produktiv,
    denn viele Topfbäume gehen auch bei guter Pflege ein. Bei Freilandbäumen, die
    erst kurz vorm Verkauf in ein Gefäß gesetzt werden, haben häufig die Wurzeln gelitten und die Bäume verdursten trotz ausreichender
    Wasserversorgung. Achten Sie beim Kauf zudem darauf, dass die Ballengröße unteilbar guten Verhältnis zur Höhe des
    Baumes steht. Wählen Sie deshalb ein Bäumchen, das im Topf herangezogen wurde.
    Bis zu den Weihnachtstagen in der Kälte Freiland und dann sofort ins Festzimmer
    gebracht: Diesen Schock überleben Topfbäume nur selten.
    So können Sie recht definitiv sein, dass das Wurzelwerk gesund ist.
    Der Tannenbaum befindet sich ja in der Winterruhe und wird quasi übergangslos mit dem Sommer konfrontiert.
    Stellen Sie ihn deshalb einige Tage an einen schattigen aber frostfreien Platz, beispielsweise
    in die Garage. Ziehen Sie das Bäumchen hinterher in das kühle Treppenhaus um.
    Die hier herrschende Durchschnittstemperatur sollte bei etwa 15 Grad liegen. Frühestens einen Tag vor Heiligabend dürfen Sie den Weihnachtsbaum
    im Festzimmer aufstellen, wo er nimmer als zehn Tage verbleiben sollte.
    Der kleine Baum sollte aber auch nicht für immer nasse
    Füße haben, denn das führt häufig zu Wurzelfäule.
    Empfehlenswert ist es, den Ballen vor dem Schmücken in Wasser zu tauchen bis keine
    Luftblasen mehr aufsteigen. Wichtig ist es, dass der
    Topfballen niemals ganz austrocknet. Gießen Sie
    dann, zufolge Wasserbedarf, mindestens jeden zweiten Tag und achten Sie dabei
    darauf, dass keine Flüssigkeit im Untersetzer stehen bleibt.
    Sorgen Sie durch tägliches Besprühen der Nadeln für ausreichende Luftfeuchtigkeit.

    Gewöhnen Sie den Baum nach den Festtagen wieder behutsam fast kalten Temperaturen im Freiland.
    Auspflanzen dürfen Sie ihn, sobald kein Nachtfrost mehr droht.

  8. I know this if off topic but I’m looking into starting my own blog and was
    wondering what all is needed to get set up?
    I’m assuming having a blog like yours would cost a
    pretty penny? I’m not very web smart so I’m not 100% sure.
    Any recommendations or advice would be greatly appreciated.
    Cheers

  9. unsplash.com表示:

    Wonderful blog! I found it while surfing around on Yahoo
    News. Do you have any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!
    Thank you

  10. Ahmad表示:

    I do not know whether it’s just me or if everybody else encountering problems with your blog.
    It appears as though some of the text on your content are running off the screen. Can somebody else
    please comment and let me know if this is happening
    to them too? This may be a problem with my web browser
    because I’ve had this happen before. Many thanks

  11. Der Hersteller Ecco gehört zu den führenden Anbietern von Nordic walking
    Schuhen für Männer und Frauen. Dieses Modell besteht aus 100 Prozent Leder, das Innenmaterial
    ist aus Textilstoff, die Sohle aus Kunststoff. Die Modelle sind allesamt auf die besonderen Bedürfnisse bei der Ausdauersportart abgestimmt.
    Auch diese Schuhe können fest mit Schnürsenkeln verschlossen werden. Ausgezeichnet ist die Passgenauigkeit, denn die Größen dieser Nordic Walking Schuhe Herren fallen regulär aus.
    Ein weiterer Vorteil dieser Schuhe ist die
    Wasserdichte. Ecco hat bei diesem Modell Nordic Walking Schuhe Herren wieder alles getoppt.
    Die Schuhe sind praktisch, bequem und das Preis-Leistungsverhältnis stimmt komplett.
    Besonders gelobt wurden diese Nordic Walking Schuhe Herren wegen ihrer sehr guten Verarbeitung,
    der Robustheit sowie dem sehr bequemen Tragekomfort – auch
    auf schwierigem Untergrund und für längere Touren.
    Zudem ist er optisch so gestaltet, dass er auch klaglos und von den Käufern sehr
    genießen auch als normaler Freizeitschuh oder sogar im Büro getragen werden kann.
    Die Fersen sind in diesen Schuhen sehr weich gepolstert, was
    den Tragekomfort noch erhöht. Auch das eingearbeitete Fußbett dieser Nordic Walking Schuhe Herren hat sehr gute Bewertungen erhalten. Es gibt so konzipiert, dass es sich jedem Fuß ideal anpasst.

  12. judi online表示:

    I read this paragraph fully regarding the comparison of most recent and earlier technologies,
    it’s amazing article.

  13. This is my first time visit at here and i am genuinely impressed to read everthing at single place.

  14. With havin so much content do you ever run into any issues of
    plagorism or copyright infringement? My site has a
    lot of completely unique content I’ve either created myself or outsourced but
    it looks like a lot of it is popping it up all over the web without my agreement.
    Do you know any solutions to help protect against content from being stolen? I’d genuinely appreciate
    it.

  15. What’s up colleagues, nice article and fastidious urging commented here,
    I am genuinely enjoying by these.

  16. I visited various web pages except the audio
    feature for audio songs current at this
    website is genuinely superb.

  17. Howdy! Someone in my Facebook group shared this website with us so I came
    to check it out. I’m definitely loving the information. I’m bookmarking and
    will be tweeting this to my followers! Wonderful blog and excellent design.

  18. Hmm it seems like your blog ate my first comment (it was super long) so I guess I’ll just sum
    it up what I submitted and say, I’m thoroughly enjoying your blog.
    I too am an aspiring blog blogger but I’m still new to everything.
    Do you have any helpful hints for first-time blog
    writers? I’d certainly appreciate it.

  19. I like the helpful information you provide in your articles.
    I’ll bookmark your blog and check again here frequently.
    I’m quite sure I’ll learn plenty of new stuff right here!
    Good luck for the next!

  20. Wow, amazing blog layout! How long have you been blogging for?
    you make blogging look easy. The overall look of your website is
    great, let alone the content!

  21. I have been exploring for a bit for any high quality articles or weblog posts in this sort
    of area . Exploring in Yahoo I eventually stumbled upon this
    site. Studying this info So i’m happy to show that I have an incredibly excellent uncanny feeling I came
    upon just what I needed. I most definitely will make certain to
    do not overlook this site and provides it a
    look regularly.

  22. Thank you for another informative website. The place else could I get that type of info
    written in such an ideal way? I’ve a venture that I’m simply
    now working on, and I have been on the glance out for such info.

  23. Greetings from Florida! I’m bored at work so I decided to browse your blog on my iphone during lunch break.
    I enjoy the information you present here and can’t wait to take a look when I get home.

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

  24. discuss表示:

    I am in fact delighted to glance at this blog posts which contains
    lots of valuable information, thanks for providing these kinds of data.

  25. Wonderful blog! I found it while searching on Yahoo News.

    Do you have any tips on how to get listed in Yahoo
    News? I’ve been trying for a while but I never seem to get there!
    Appreciate it

  26. My partner and I stumbled over here from a different web address and thought I might
    check things out. I like what I see so now i’m following you.
    Look forward to checking out your web page for a second time.

  27. Hello! Would you mind if I share your blog with my twitter group?
    There’s a lot of people that I think would really enjoy your content.
    Please let me know. Thank you

  28. discuss表示:

    Hello, I think your blog might be having browser compatibility issues.

    When I look at your blog site in Safari, it looks fine but when opening
    in Internet Explorer, it has some overlapping. I just wanted to give
    you a quick heads up! Other then that, wonderful blog!

  29. It’s awesome in favor of me to have a web page, which is helpful designed for my
    experience. thanks admin

  30. Hi there, I read your new stuff on a regular basis.
    Your writing style is witty, keep doing what you’re doing!

發佈留言

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