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...

871,343 Responses

  1. I read this post completely about the resemblance of most recent and previous technologies,
    it’s awesome article.

  2. We’re a bunch of volunteers and opening a
    new scheme in our community. Your web site
    provided uss with useful information to work on. You’ve performed a
    formidable process and our entire group will probably be thankful to you.

    Visit my page … https://www.scoop.it/topic/best-alternate-link-website?page=3

  3. Pretty section of content. I just stumbled upon your blog and in accession capital to assert that I get in fact enjoyed
    account your blog posts. Anyway I’ll be subscribing
    to your feeds and even I achievement you access consistently quickly.

  4. firsturl.de表示:

    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!
    Cheers

  5. zemhe.com表示:

    What a information of un-ambiguity and preserveness of valuable knowledge about
    unpredicted feelings.

  6. staubsauger表示:

    Diese sind mit eigenen Filtern und Bürsten für die feinen Härchen ausgestattet.
    Besonders für Hunde und Katzenbesitzer kann eine Anschaffung eines solchen Gerätes eine wahre Zeitersparnis sein. Das
    kleine Heinzelmännchen fährt seine Runden und bringt das Zuhause auf Vordermann, während Sie sich anderen Pflichten und Vergnügungen widmen können. Derartig Saugroboter muss aber auch gewissenhaft selbst gereinigt und gepflegt werden, damit Sie möglichst lange von dieser Haushaltshilfe Gebrauch nütze sein. Eine staubfreie und geputzte Wohnung vorzufinden, wenn man nach einem langen Arbeitstag wieder Heim kommt, das
    kann mit einem Saugroboter zur Form annehmen. Ein Staubsauger reinigt Ihr Zuhause, befindet sich also täglich im Kampf gegen Schmutz und Staub.
    Wie Sie bei der Produktpflege genau vorgehen sollten und welche Tipps und Tricks die Reinigung des Saugroboters vereinfachen, das erfahren Sie
    in diesem kurzen Artikel. Daher solle es auch einleuchtend
    sein, dass dieses Wunder der Technik ebenfalls regelmäßig gereinigt werden sollte.
    Eine gewissenhafte Produktpflege gewährleistet eine längere Lebensdauer und auch die Saugleistung bleibt über längere Zeit hinweg
    so hoch, wie bei der ersten Verwendung. Zuallererst
    muss die Hauptbürste des Saugroboters gereinigt werden.

  7. 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 amazing.
    Thanks!

  8. discuss表示:

    Do you have a spam problem on this site; I also am a blogger,
    and I was curious about your situation; we have created some nice practices and
    we are looking to trade methods with other folks,
    why not shoot me an e-mail if interested.

  9. Hi fantastic website! Does running a blog such as
    this take a large amount of work? I have no understanding of computer programming however I was hoping to start my own blog
    in the near future. Anyways, if you have any suggestions or tips for new blog owners please
    share. I know this is off topic nevertheless I just wanted to ask.
    Thanks a lot!

  10. Keep on working, great job!

  11. This post will assist the internet people for setting up new weblog or even a weblog from start to
    end.

  12. certainly like your web site however you have to test the spelling on quite
    a few of your posts. A number of them are rife with spelling issues
    and I in finding it very bothersome to inform the reality however I’ll definitely
    come again again.

  13. Hi i am kavin, its my first time to commenting anywhere,
    when i read this paragraph i thought i could also make comment due
    to this sensible piece of writing.

  14. Hello, this weekend is good for me, because this point in time i am
    reading this enormous educational article here at my house.

  15. At this time it appears like Movable Type is the preferred
    blogging platform out there right now. (from what I’ve read) Is that what you’re
    using on your blog?

  16. You are so cool! I don’t suppose I’ve read through something like this before.
    So wonderful to discover somebody with a few unique thoughts on this topic.
    Seriously.. many thanks for starting this up.
    This site is one thing that is needed on the internet, someone with some originality!

  17. I read this piece of writing completely concerning the resemblance of latest and earlier technologies, it’s remarkable article.

  18. I visited many websites however the audio feature for audio songs present
    at this web page is in fact marvelous.

  19. Ihr stellt fest: Bei einem Winterurlaub in Frankreich könnt ihr
    euch auf Abwechslung, Skipisten und viele Highlights freuen. Entstehen zahlreiche andere Skiorte,
    die für einen unvergesslichen Aufenthalt sorgen und herrliche Abfahrten garantieren.
    Es gibt die größte und schnellste doppelstöckige Luftseilbahn der Welt.
    Die Schweiz darf auf der Liste der beliebtesten Destinationen für
    einen Skiurlaub nicht fehlen. Frankreich stellt damit Vanoise Express einen weiteren Rekord auf.
    Hier gibt es flache Hänge für alle, die mit den Skiern noch nicht vertraut sind.
    In Saas Fee, dem höchsten Skigebiet der Alpen, erwartet
    euch ein atemberaubender Ausblick. Von oben fahrt ihr über 20 Kilometer
    hinab und beendet die Tour in Chamonix. St. Moritz ist weltweit das beliebtesten Destinationen für einen Skiurlaub in der Schweiz.
    Hier findet ihr ebenso das größte zusammenhängende Skigebiet der
    Welt: Les Trois Vallées. Die Schweizer Alpen garantieren euch malerische Skiorte mit
    schneebedeckten Landschaften. Für die Profis gibt es die steilen Pisten.

  20. I was extremely pleased to discover this web site.
    I want to to thank you for your time for this fantastic read!!
    I definitely liked every little bit of it and i also have you saved to fav to look at new things in your blog.

  21. kassen rollen表示:

    Die Steuerberatergenossenschaft DATEV empfiehlt dazu,
    man allen grund haben darüber zuvor beim zuständigen Finanzamt erkundigen.
    Damit stellt man nicht nur das Finanzamt zufrieden,
    sondern sichert auch seine Ansprüche auf Gewährleistung.

    Unabhängig davon gilt für Handwerkerrechnungen eine Aufbewahrungsfrist
    von zwei Jahren sowie von fünf Jahren für Belege von Bauleistungen am Eigenheim.
    Wenn der Absender etwa über sein Fakturaprogramm eine elektronische
    PDF-Rechnung qualifiziert signiert, errechnet die
    Software übers gesamte Dokument einen Hashwert und kodiert diesen damit privaten Schlüssel des Absenders.
    Dieser Schlüssel ist so auf einem USB-Stick gespeichert und speziell für den Absender zugänglich, wenn er beim
    Signieren im Rechner eingesteckt ist. Das Zertifikat enthält Verweise auf seinen Herausgeber, den vom Herausgeber beglaubigten Namen und den öffentlichen Schlüssel des Absenders.
    Stimmen beide Werte überein, kann man auf die Unversehrtheit der Rechnung vertrauen. Außerdem kann der Adobe Reader durch Online-Anfrage beim Herausgeber eine Auskunft über Echtheit und Gültigkeit des Zertifikats einholen, das sogenannte OCSP
    (Online Certificate Status Protocol). Öffnet der Empfänger die erhaltene Rechnung etwa im Adobe Reader, errechnet dieser den Hashwert des Dokuments und dekodiert über den öffentlichen Schlüssel des Absenders den mitgelieferten Hash.
    Dieses Protokoll ist auch bei wiederkehrenden Rechnungen desselben Gläubigers immer von Neuem einzuholen.Article_Title Bonrollen &
    Thermorollen & EC-Rollen

  22. Excellent website you have here but I was curious about if you knew of any user discussion forums that cover the same topics
    talked about here? I’d really like to be a part of community where I can get feed-back from other experienced people that share
    the same interest. If you have any suggestions, please let me know.
    Thank you!

  23. Wohh precisely what I was looking for, thanks for putting up.

  24. kassenrollen表示:

    Thermopapierrollen finden in einer Vielzahl von Kassen, Waagen, Automaten oder
    Bondruckern Verwendung. EC-Geräte nutzen ausschließlich Thermorollen 57 mm (57 mm breite Rollen aus
    Thermopapier). Thermo Kassenrollen hingegen gibt es in einer Vielzahl verschiedener Breiten, die
    gängigsten sind hierbei Thermorollen 80 mm und 58 mm.
    Sie können bei GEBONGT24 Thermobonrollen ohne Bisphenol A (BPA frei) oder
    komplett phenolfrei (BP frei) günstig bestellen. Grundsätzlich unterscheidet man zweierlei
    Bonrollen: Kassen Thermorollen und Kassenrollen aus Normalpapier (Additionsrollen).
    Wann benötige ich Thermorollen? Thermorollen, auch „Thermopapierrollen”
    oder „Thermobonrollen” genannt, benötigen Sie immer dann, wenn Ihre Kasse, Ihr EC-Gerät bzw.
    Ihr Drucker mit einem Thermodruckverfahren arbeitet. Beim Druckvorgang wird das Kassenrollen Thermopapier partiell erhitzt exemplarisch das Druckbild
    auf das Papier der Thermorollen “eingebrannt”. Ein einfacher Test, festzustellen ob Sie
    Rollen aus Thermopapier kaufen müssen,
    ist der Fingernagel-Test. Nehmen Sie dazu einfach die aktuelle Thermo Kassenrolle
    aus Ihrer Kasse bzw. Ihrem Drucker und versuchen Sie mit dem Fingernagel darauf zu kratzen.

  25. Thank you for some other informative website.
    The place else may just I get that kind of information written in such a perfect method?

    I have a venture that I’m just now working on, and I
    have been on the glance out for such information.

  26. Excellent blog! Do you have any tips for aspiring
    writers? I’m planning to start my own website soon but I’m a little lost on everything.

    Would you recommend starting with a free platform like WordPress or go for a paid option? There are
    so many options out there that I’m completely overwhelmed
    .. Any recommendations? Appreciate it!

  27. You can certainly see your skills in the work you write.
    The arena hopes for even more passionate writers such as you who are not afraid to mention how they believe.
    All the time go after your heart.

  28. I need to to thank you for this wonderful read!! I certainly loved every
    little bit of it. I’ve got you bookmarked to check out new things you
    post…

  29. discuss表示:

    Hi there, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot of spam remarks?
    If so how do you reduce it, any plugin or anything
    you can recommend? I get so much lately it’s driving me insane so any assistance
    is very much appreciated.

發佈留言

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