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,248,796 Responses

  1. Wow! This blog looks exactly like my old one! It’s on a entirely different
    topic but it has pretty much the same page layout and design. Superb choice of colors!

  2. Good blog you have here.. It’s hard to find high quality writing like yours nowadays.

    I really appreciate individuals like you!
    Take care!!

  3. Hi, this weekend is nice in favor of me, because this occasion i am reading this impressive informative article here at my residence.

  4. You have brought up a very excellent details, thanks for the post.

  5. trading forex表示:

    Quality articles is the main to be a focus for the people to
    pay a visit the site, that’s what this website is
    providing.

  6. Good day! I know this is kinda off topic however , I’d figured
    I’d ask. Would you be interested in trading links or maybe guest writing a blog article or vice-versa?
    My website addresses a lot of the same topics as
    yours and I feel we could greatly benefit from each other.

    If you are interested feel free to shoot me an e-mail. I look forward to hearing from you!

    Excellent blog by the way!

  7. Mehrscheiben-Isolierglas (MIG), auch als Wärmedämmverglasung oder Isolierverglasung bezeichnet,
    ist ein aus wenige Glasscheiben zusammengesetztes Bauelement für Fenster und
    andere Verglasungen. Zwischen den Scheiben befindet sich
    ein Hohlraum, der gas- und feuchtigkeitsdicht verschlossen ist und der Schall- und Wärmedämmung dient.
    In den ersten Jahrzehnten seit Aufkommen von Mehrscheiben-Isolierglas (1950er bis 1970er Jahre)
    hatte die Marke Thermopane im deutschen Sprachraum eine große Verbreitung.

    Vorläufer waren die Doppelverglasung ohne Luftabschluss,
    das Verbundfenster und die doppelte Einzelverglasung beim Kasten- oder beim Winterfenster.
    Der Name wurde zeitweilig zum Synonym für Zweischeiben-Isolierglas.
    Als Produktbezeichnung werden auch die Ausdrücke Klimaschutzglas,
    Thermoglas, Wärmedämmglas oder Wärmeschutzglas verwendet.
    Ausdrücke wie Sonnenschutzglas, Sichtschutzglas, Einbruchschutzglas oder Schallschutzglas bezeichnen alles in allem
    ein Mehrscheiben-Isolierglas mit speziellen zusätzlichen Eigenschaften, obzwar eine einzelne Flachglaskonstruktion diese ebenfalls haben kann.

    Im Unterschied zu wärmeren Klimazonen steht in Zentral- und
    Nordeuropa bei wärmedämmenden Fenstern weniger die Reduzierung der erforderlichen Kühlungsenergie
    (hohe Betriebskosten von Klimaanlagen), als vielmehr
    eine wesentliche Einsparung bei der Heizenergie für Gebäude im Vordergrund.

  8. Thanks for some other informative website. Where else may I get that type of information written in such an ideal means?
    I’ve a venture that I’m just now operating on, and I have been on the glance out for such information.

  9. Michelle表示:

    When someone writes an article he/she maintains the image of
    a user in his/her mind that how a user can know it. Thus that’s why this piece of writing is perfect.
    Thanks!

  10. canamkart.ca表示:

    I know this web page presents quality depending articles and extra stuff, is there any
    other web page which presents these kinds of things in quality?

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

  12. discuss表示:

    With havin so much content do you ever run into any issues of plagorism or copyright violation? My website 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 internet without my permission.
    Do you know any ways to help stop content from being stolen? I’d definitely appreciate
    it.

  13. When I initially commented I appear to have clicked the -Notify me when new
    comments are added- checkbox and from now on every time
    a comment is added I get 4 emails with the same comment.

    Is there a way you are able to remove me from that service?
    Thank you!

  14. Hey there are using WordPress for your site platform?
    I’m new to the blog world but I’m trying to get started and create my own. Do you require any html coding
    expertise to make your own blog? Any help would be
    greatly appreciated!

  15. Hey There. I discovered your blog using msn. This is a very smartly written article.
    I will be sure to bookmark it and return to
    read more of your useful info. Thanks for the post.
    I will definitely return.

  16. I am not sure where you are getting your info, but good
    topic. I needs to spend some time learning much
    more or understanding more. Thanks for magnificent info I was looking for this information for my
    mission.

  17. Wow, fantastic blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your web site is magnificent, let alone the content!

  18. telegra.ph表示:

    Very great post. I simply stumbled upon your weblog and wished to say that I’ve truly
    loved surfing around your blog posts. After all I’ll be subscribing for your
    feed and I am hoping you write again very soon!

  19. Article writing is also a fun, if you be acquainted with after that you can write if not it is
    complex to write.

  20. I simply wanted to thank you so much yet again. I’m not certain the things I might have taken care of in the absence
    of these aspects revealed by you relating to such a question. It absolutely was
    a very daunting scenario in my circumstances, nevertheless understanding the
    very skilled way you managed it took me to weep for delight.

    I’m happier for this support and then trust you really know
    what a great job you have been putting in educating the mediocre
    ones thru your web page. I’m certain you haven’t encountered
    all of us.

  21. Way cool! Some very valid points! I appreciate you writing this write-up plus
    the rest of the website is also really good.

  22. discuss表示:

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

  23. Daher verlangen die Finanzbehörden oftmals das
    Anfertigen von langlebigen Kopien der Kassenbons auf Thermopapier.
    Die Thermorollen bei bonstore weisen aber eine verbesserte
    Beschichtung auf, die gegenüber Umwelteinflüssen resistenter ist.
    Bei Verwendung hochwertiger Thermopapiere sind bei licht- und wärmegeschützter Lagerung die Druckbilder der Belege
    auch noch nach vielen Jahren ausgezeichnet lesbar.
    Der Thermodruck auf den Belegen aller unserer Thermorollen ist bei sachgemäßer Lagerung über 10
    Jahre hinaus lesbar. Die Licht geschützte Lagerung in kühlen Räumen, ermöglicht eine lange Haltbarkeit neuer verpackter Thermorollen über Jahre.
    Aus Thermopapier bestehende Kassenbelege, sollten ebenfalls
    dunkel und kühl lagern. So sollten die Belege nicht in Taschen, Klarsichtfolien, oder
    Geldbörsen deponiert sein. Der Kontakt der Belege zu Kunststoffen, Lösungsmitteln, Ölen und Fetten beeinflusst das Druckbild durch Verblassen bis
    hin zur Unlesbarkeit. Geboren Lagerung ist gerade für den Kunden sehr wichtig, denn ist
    die Schrift eines Kassenbons mit Thermodruck verblasst, könnte es im Garantiefall, beim Umtausch, oder bei der Rückgabe von Waren schwierig werden. Thermopapier sollte grundsätzlich nicht dem direkten Sonnenlicht, sowie keiner großen Hitze ausgesetzt werden. Was passiert bei falscher Lagerung
    der Kassenbons aus Thermopapier? Diverse chemische Stoffe verfügen aber
    auch über Eigenschaften, die das Thermopapier angreifen. Besonders bei der Einwirkung von Wärme verblasst der Aufdruck auf Belegen aus
    Thermopapier. Klebstoffe wie zum Beispiel lösen Thermopapier auf.
    Ebenso sollte man vermeiden, die Kassenbons aus Thermopapier
    in Klarsichthüllen zu lagern. Selbst auf die Gerbstoffe in unserem Lederportemonnaie können Quittungen aus Thermopapier reagieren. Deshalb ist auch dieses für eine dauerhafte
    Lagerung von Thermopapierbelegen ungeeignet. Die Hüllen enthalten oftmals chemische
    Weichmacher, welche dem Thermopapier schaden können. Gern stehen wir Ihnen beratend zur Seite.

    Wir sind für Gnädige Frau! Wir helfen Ihnen gern und
    sind stets bemüht, all Ihre Anforderungen und Wünsche
    durchweg zu berücksichtigen.

  24. dx.v68.tw表示:

    Excellent post. Keep posting such kind of information on your site.
    Im really impressed by it.
    Hey there, You have performed a fantastic job.
    I will definitely digg it and in my view recommend to my friends.

    I am sure they’ll be benefited from this site.

  25. My partner and I stumbled over here by a different
    page and thought I might check things out.

    I like what I see so now i am following you. Look forward to
    looking over your web page repeatedly.

  26. I think this is one of the most vital info for me.
    And i am glad reading your article. But want to remark on few general things, The website style is ideal, the articles is really great
    : D. Good job, cheers

  27. really interesting review. Similarly visit my,
    personal site to own slot. The particular extraordinary site has received
    identity from the agen slot deposit pulsa wagering members in Indonesia.

    Presently there are generally various eye catching promos in case you
    join at this stage.

  28. It’s remarkable to go to see this web page and reading the views
    of all friends regarding this article, while I
    am also zealous of getting experience.

  29. zzb.bz表示:

    you’re in point of fact a good webmaster. The site loading speed is
    amazing. It seems that you are doing any distinctive trick.
    Furthermore, The contents are masterwork.
    you have done a fantastic activity on this topic!

  30. whoah this weblog is excellent i really like
    studying your articles. Keep up the good work! You already know, lots of persons are
    looking round for this information, you can aid them greatly.

發佈留言

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