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

907,860 Responses

  1. I’m truly enjoying the design and layout of your website.
    It’s a very easy on the eyes which makes it much more pleasant for me to come
    here and visit more often. Did you hire out a developer to create
    your theme? Outstanding work!

  2. Hi, this weekend is pleasant in support of me, since this time i am reading this enormous informative paragraph here at my residence.

  3. We are a group of volunteers and starting a new scheme in our community.
    Your site offered us with valuable information to work on. You have done a formidable job and our entire
    community will be grateful to you.

  4. Links wirken hier wie Empfehlungen in der realen Welt.

    Je vertrauenswürdiger eine empfehlende bzw. verweisende Quelle ist, desto wertvoller ist der Backlink bzw.
    die Empfehlung. Weniger die Anzahl der Links als solche/r/s (Linkpopularität).
    Hier spielt zunächst die Anzahl der verschiedenen verlinkenden Domains, die
    sogenannte Domainpopularität, eine Rolle. Die zweite Ebene ist die
    thematische Beziehungsebene. Übertragen auf die Semantik bzw.
    Graphentheorie sind Links die Kanten zwischen den Knoten bzw.
    Entitäten. Link stellen auch immer Beziehungen zwischen den Dokumenten und deren dort
    abgebildeten Themen dar. Owned- und teilweise auch Self-Placed-Links wie Branchenbücher sind vor allem für die Entitäten-Bildung
    zuständig, während Paid- und Earned Links Sinn für die Verbesserung der Autorität einer Domain machen. Wir bei Aufgesang orientieren uns hier an ein semantisches Verlinkungskonzept- Mehr dazu in dem Beitrag Semantisch Themen finden: Wie identifiziert
    man semantisch verwandte Keywords? Umsetzung: Hier übernimmt der/die SEO-Manager(in) nochmal vor allem eine beratende Funktion. In Anlehnung an dem ob
    man sich für einen aktiven skalierbaren Linkaufbau
    oder organischen Linkaufbau via Content-Marketing entscheidet.

  5. Good answers in return of this difficulty with genuine arguments and explaining the whole thing regarding that.

  6. skifahren表示:

    Da warten u.a. Saunen und einem Indoor- und Outdoorpool.
    Außerdem wurde es bereits mehrfach zum besten Skigebiet der Welt gekürt!
    Direkt bei den Liften des Skigebiets Obergurgl – Hochgurgl steht das Top bewertete 4°S The Crystal mit seinem fantastischen 2.000 m² Spa-Bereich auf
    2 Etagen. Die Gründe liegen klar auf der Hand: Neben den modernsten Aufstiegsanlagen und den vielen traditionellen Hütten zum Einkehren findet ihr hier… Servus Piraten! Lust auf einen luxuriösen Trip ganz ans Ende des Ötztals?

    Dahinter stehen zwei bekannte Persönlichkeiten, nämlich Hermann Maier & Rainer Schönfelder,
    welche mit dieser neuen Hotelmarke (ursprünglicher
    Name adeo) Skiurlaub für jedermann erschwinglich machen, was ihnen mit
    ihren Hotelprojekten jedenfalls gut… Mit fast 300 Pistenkilometern und knapp
    100 Liftanlagen gehört die SkiWelt Wilder Kaiser-Brixental zu den größten und modernsten Skigebieten Österreichs
    und der Welt. Auch zum diesjährigen Saisonfinale Ende
    März bekommt ihr noch Termine. Falls ihr dieses Jahr nicht zum Rennen dort wart, macht das nichts, denn Snowtrex hat
    bereits die Buchungstermine für Zukunft Jahr drin, bei denen ihr
    eine gehörige Portion sparen könnt. Ahoi Piraten! Matthias Mayer heisst der diesjährige
    Sieger des Hahnenkammrennens auf der Kitzbühler “Streif”.
    Wem die 110 km Piste auf einer Höhe zwischen…

  7. Refugio表示:

    After looking into a few of the blog articles
    on your website, I really like your way of blogging. I book-marked it to my
    bookmark website list and will be checking back
    in the near future. Please visit my web site as well and tell me how you feel.

  8. Thankfulness to my father who shared with me about
    this web site, this website is truly remarkable.

  9. Thanks for your personal marvelous posting! I really enjoyed reading it, you’re a great author.
    I will always bookmark your blog and may come back in the future.
    I want to encourage you to ultimately continue your great writing, have a nice day!

  10. You could definitely see your enthusiasm within the work you write.
    The arena hopes for more passionate writers like you who are not afraid to say how they believe.
    At all times go after your heart.

  11. What’s up, its pleasant article about media print, we
    all be familiar with media is a wonderful source of facts.

  12. twidunode.com表示:

    Hello friends, how is everything, and what you want to say about this article, in my view
    its actually remarkable in support of me.

  13. Incredible points. Solid arguments. Keep up the great spirit.

  14. Hi, every time i used to check weblog posts here early in the
    dawn, for the reason that i like to find out more and more.

  15. I like the valuable info you provide on your articles.
    I’ll bookmark your blog and test once more here regularly.
    I’m reasonably certain I will learn lots of new stuff
    proper here! Best of luck for the following!

  16. Thanks in support of sharing such a fastidious thinking, paragraph is good, thats why i have read
    it entirely

  17. I will right away take hold of your rss feed as I can’t in finding your e-mail subscription hyperlink or e-newsletter service.
    Do you have any? Please let me recognise so
    that I may subscribe. Thanks.

  18. hmsay.com表示:

    I am curious to find out what blog platform you happen to be utilizing?
    I’m experiencing some minor security issues with my latest website and I’d like to
    find something more risk-free. Do you have any suggestions?

  19. Good day very cool blog!! Man .. Beautiful .. Amazing ..
    I’ll bookmark your web site and take the feeds additionally?
    I’m glad to find a lot of useful info here within the post, we
    want work out more strategies in this regard, thanks for sharing.
    . . . . .

  20. Hello, i read your blog occasionally and i own a similar one
    and i was just wondering if you get a lot of spam comments?
    If so how do you stop it, any plugin or anything you can recommend?
    I get so much lately it’s driving me mad so any support is very much appreciated.

  21. Nice respond in return of this query with genuine arguments and telling
    all about that.

  22. Hello, Neat post. There’s a problem along with your web site in internet explorer,
    might check this? IE nonetheless is the market
    chief and a good component of other people will leave out your great writing due to this problem.

  23. Great post. I’m dealing with some of these issues as well..

  24. Howdy outstanding blog! Does running a blog like this require a
    massive amount work? I have virtually no expertise in computer programming however
    I was hoping to start my own blog in the near future. Anyway, should you have any suggestions or techniques for new blog owners please share.
    I know this is off subject nevertheless I simply needed to ask.
    Thanks!

  25. Thanks for finally talking about > JS 依照元素出現數量排序 – 馬老師 雲端研究室 < Loved it!

  26. My coder is trying to persuade me to move to .net from PHP.

    I have always disliked the idea because of the costs. But he’s tryiong none the less.
    I’ve been using Movable-type on a number of websites for about a year and am
    worried about switching to another platform.
    I have heard very good things about blogengine.net. Is there a way I can transfer all my wordpress posts into it?
    Any kind of help would be greatly appreciated!

  27. Pro Nase Schmutz gewappnet: Der Zaco Saugroboter kann nicht nur saugen, hierbei beiliegenden Wassertank ist er in einem Wink auch ein Wischroboter.

    Das lohnt sich erst recht, wenn du viel Parkett oder Fliesen in der Wohnung
    hast. Per App lässt sich auch der Wasserverbrauch anpassen.
    Rudimentäre App: Beim Zaco V5x hast du die Wahl zwischen Fernbedienung und App.
    Einige Zusatzfunktionen haben im Test nur sporadisch funktioniert – die Kernfunktionen klappten problemlos.
    Der Zaco V5x zeigte a fortiori auf glatten Böden eine solide Saugleistung und ist für
    1-2 Räume absolut empfehlenswert. Mit seiner Laufzeit von 120 Minuten erreichte er im Test alle
    Bereiche des Raumes. Die einfach gehaltene App bietet zusätzlich eine praktische Akkustandanzeige,
    eine Übersicht über die Lebensdauer von Bürsten und HEPA-Filter sowie Einstellungsmöglichkeiten für
    die Wischfunktion. Auch das Saugen unter der Couch war, dank seiner geringen Höhe
    von 8 cm, kein Hindernis. Auch beim Wischen behält der Zaco seine niedrige Höhe – ein großer Vorteil zu Kombi-Geräten, bei
    denen der Wassertank auf das Gerät gesetzt wird.

  28. Its such as you read my thoughts! You appear to know so much about this, like you wrote the guide in it or something.
    I believe that you just can do with a few % to power the message house a little bit, but other than that, this
    is wonderful blog. A great read. I will definitely be back.

  29. 230-V-Netz dienen lediglich der Veranschaulichung des jeweiligen Schaltschemas.
    Bitte bedenken Sie, dass Arbeiten und Installationen an der Stromversorgung ausschließlich dafür
    ausgebildeten Fachkräften vorgenommen werden sollten. Bei Arbeiten an der
    Elektroinstallation ist zudem immer sicherzustellen, dass die
    Sicherung ausgeschaltet oder herausgedreht wurde. Außerdem können in Bestandsgebäuden nicht den Vorschriften entsprechende
    Elektroinstallationen (Farbe der Leitungen, Verlegung der Leitungen usw.)
    existieren. Zudem muss die Belegung der Leitungen eindeutig definiert werden können. Zunächst an der Zeit
    sein, die Anschlussmöglichkeiten an einem Bewegungsmelder richtig zu interpretieren. Auch am späteren Verbraucher sind diese drei Anschlussmöglichkeiten gegeben: L, N und PE.
    Ebenso können auch Lichtschalter in die Schaltung des
    Bewegungsmelders integriert werden. Wie Sie einen Bewegungsmelder zum Ausschalten schalten, zeigen wir in dem verlinkten Beitrag
    ausführlich. Auch die Schaltung des Bewegungsmelders bzw.
    des Verbrauchers auf Dauerstrom zeigen wir hier ausführlich.
    Hierbei wird L vor dem Bewegungsmelder ebenfalls durch einen Wippschalter geführt, dann aber zusätzlich direkt mit L des
    Verbrauchers verklemmt. Kurz umrissen: Vorm Bewegungsmelder
    wird L zusätzlich durch einen Wippschalter geführt und dann weiter zu L bzw.

    L2 am Bewegungsmelder. Eine weitere Möglichkeit ist es,
    eine Schaltung für mehrere Bewegungsmelder anzulegen. Natürlich
    können Sie die Schaltung sowieso vornehmen, dass Sie den Bewegungsmelder komplett ausschalten und den Verbraucher dennoch auf Dauerstrom
    schalten können. Dazu können Sie die Bewegungsmelder aufgereiht schalten. Beachten Sie
    bei dieser Schaltung jedoch, dass sich die Schaltzeiten beider Bewegungsmelder addieren können, wenn Bewegungen innerhalb beider Überwachungsbereiche erfolgen.

  30. Hello, i think that i saw you visited my weblog so i came to “return the favor”.I am trying to
    find things to improve my site!I suppose its ok to use a few of your ideas!!

發佈留言

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