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

  1. bbs.ffsky.com表示:

    I do not know if it’s just me or if perhaps everyone else encountering issues with your site.
    It appears like some of the text on your content are running off the screen. Can someone else please provide feedback and let me know if this is happening
    to them as well? This might be a issue with my web browser because
    I’ve had this happen before. Appreciate it

  2. Hi there friends, fastidious piece of writing and
    nice urging commented at this place, I am really enjoying by these.

  3. My spouse and I stumbled over here coming from a different page and thought
    I should check things out. I like what I see so i am
    just following you. Look forward to checking out your web page repeatedly.

  4. Because the admin of this web page is working,
    no question very quickly it will be well-known, due to its quality contents.

  5. It’s going to be finish of mine day, however before ending I
    am reading this fantastic article to increase my
    know-how.

  6. Hi, this weekend is nice for me, since this occasion i am reading this great educational
    article here at my home.

  7. taruhan bola表示:

    Good day! I know this is somewhat off topic but I was wondering which blog platform are you using for
    this site? I’m getting fed up of WordPress because I’ve had issues with hackers and I’m looking
    at options for another platform. I would be great if you could point me in the
    direction of a good platform.

  8. Hello i am kavin, its my first time to commenting anywhere, when i read this
    article i thought i could also create comment due to this good article.

  9. Fantastic beat ! I wish to apprentice at the same time as you amend your site, how can i subscribe for a weblog web site?
    The account aided me a applicable deal. I have been a little bit familiar of this
    your broadcast offered bright clear idea

  10. Amelie表示:

    An interesting discussion is worth comment. I do think that you
    should write more on this topic, it may not be a taboo subject but typically people do
    not speak about such topics. To the next! Best wishes!!

  11. urlscan.io表示:

    I blog often and I really thank you for your information.
    This great article has really peaked my interest. I will bookmark your website and keep
    checking for new information about once a week. I opted in for
    your Feed as well.

  12. Hey There. I found your blog using msn. This is a really well written article.
    I’ll make sure to bookmark it and return to read more of your useful info.
    Thanks for the post. I’ll definitely comeback.

  13. 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 hüben 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, so 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 eingesetzt werden, 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.

  14. Remarkable! Its in fact amazing piece of writing, I have got much clear idea concerning from this article.

  15. sc.sie.gov.hk表示:

    Pretty section of content. I just stumbled upon your weblog and in accession capital to assert that I acquire in fact enjoyed account your blog posts.

    Any way I will be subscribing to your augment and even I achievement you access consistently fast.

  16. Great post. I was checking constantly this blog and I am impressed!
    Extremely helpful information specifically the last
    part 🙂 I care for such info much. I was looking for this particular info for a very long time.
    Thank you and best of luck.

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

  18. Right now it sounds like WordPress is the preferred blogging platform available right
    now. (from what I’ve read) Is that what you are using on your
    blog?

  19. discuss表示:

    I wanted to thank you for this great read!! I definitely
    enjoyed every little bit of it. I have got you book-marked to look at new
    stuff you post…

  20. Wie unterscheiden sich Thermorollen von Normalpapier Kassenrollen und
    wo werden diese eingesetzt? Bei Bonrollen aus Thermopapier ist eine Seite des
    Papier thermoaktiv beschichtet, dass an der Zeit sein verfärbt sich unter der Einwirkung
    von Hitze. Bei Bonrollen aus Normalpapier ist das Papier
    nicht beschichtet, der Druck erfolgt in aller Regel über einen Nadeldrucker,
    der widerum ein Farbband benötigt. Bei einem Thermodrucker erzeugt
    der Druckkopf diese Hitze an den zu bedruckenden Stellen, so, dass Schrift oder Grafiken aufscheinen. Aufgrund der Hitzeempfindlichkeit von Thermopapier ist
    es überall dort ungeeignet, wo es außerhalb des Druckers Hitze ausgesetzt wird,
    z.B. Rand eines vorgewärmten Tellers in der Küche zu legen. Was kann ich unter Kassenrollen mit Lastschrifttext verstehen? Diesen unterschreibt Ihr Kunde bei der Bezahlung
    mit seiner EC-Karte. Bei Bonrollen mit Lastschrifttext befindet sich auf der Rückseite des
    Papier ein allgemeingültiger Lastschrifttext.
    Sofern Ihre Kunden stets eine PIN zur Authorisierung eingeben müssen, benötigen Sie keine Rollen mit Lastschrifttext.
    Gemeinhin sind diese Rollen 57mm breit und aus Thermopapier.

  21. I’m no longer sure where you are getting your info, but great
    topic. I must spend a while studying much more or understanding more.
    Thanks for wonderful information I was searching for this information for
    my mission.

  22. ayam sv388表示:

    Hmm is anyone else experiencing problems with the pictures on this blog loading?

    I’m trying to find out if its a problem on my end or if it’s the blog.
    Any feed-back would be greatly appreciated.

  23. I’m curious to find out what blog system you’re working with?
    I’m experiencing some small security issues with my latest blog and I’d like to find something more safeguarded.
    Do you have any recommendations?

  24. Hi there all, here every one is sharing these experience,
    therefore it’s nice to read this website, and I used to
    visit this website daily.

  25. slot gacor表示:

    Hurrah, that’s what I was searching for, what a information! present here at this blog, thanks admin of this website.

  26. Thank you for the auspicious writeup. It in fact was a amusement account it.
    Look advanced to more added agreeable from you! However, how could we communicate?

  27. I just could not go away your web site before suggesting
    that I actually loved the usual info an individual supply in your guests?
    Is gonna be again incessantly in order to check out new
    posts

  28. Bagi kalian yang ingin mengerjakan permainan poker online, karenanya bergabunglah dengan tempat bermain yang memberi banyak profit, dengan mudahnya

    Dalam situs bermain poker online yang memberi kepercayaan akan menjadi daerah
    bermain judi yang nyaman dan memiliki berbagai variasi penggemar di dalamnya, bagi kalian yang suka jenis permainan poker online.

    Situs bermain ini akan senantiasa membuat anda nyaman, mereka juga akan memberi pelbagai
    fasilitas yang betul-betul menarik dan kalian tak akan mendapat
    tidankan terhina yang sesekali masih kerap ditemukan dalam
    sebuah tempat game judi poker online kemujuran besar.

發佈留言

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