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,252,960 Responses

  1. Hey! Do you know if they make any plugins to protect against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard
    on. Any tips?

  2. Holz als Material für Fensterrahmen sind ein beliebter Klassiker.
    Leider müssen Sie bei der Wahl von Holzfenstern etwas höhere Kosten als bei Kunststoff erdulden und berücksichtigen, dass Holzrahmen regelmäßig neu ersatzlos gestrichen werden müssen, um
    wetterfest zu bleiben. Sie überzeugen durch eine angenehm natürlich
    Optik und allgemeine Robustheit. Aluminiums größte Stärke ist seine strukturelle
    Stabilität. Diesen Vorteil kann ein Aluminiumrahmen aber unzertrennlich normalen Wohnhaus
    nicht ausspielen und dieser Fakt ist eher bei industriellen Gebäuden oder Hochhäusern von Bedeutung.
    Mit einem Aluminiumrahmen lassen sich Fenster bauen,
    die größer sind und stärker beansprucht werden können als mit
    jedem anderen Material. Fürt durchschnittliche Wohngebäude dürfte eher
    entscheidend sein, dass Aluminiumrahmen deutlich mehr kosten als die
    Alternativen. Genutzt werden sie in diesem Bereich also vor allem aus ästhetischen Gründen, wenn das Geld eine untergeordnete Rolle spielt.

    In diesem VOR-ORT-Video sind wir bei einem unserer Projekte in Hagen (bei
    Dortmund) dabei. Gemeinsam mit unserem Handwerkspartner LFB werden hier
    atomar 12-stöckigen Hochhaus alle Fenster erneuert.
    Dabei werden 420 Fensterelemente modernisiert.

  3. Hey would you mind letting me know which web host you’re working
    with? I’ve loaded your blog in 3 completely different internet browsers and
    I must say this blog loads a lot faster then most.

    Can you recommend a good web hosting provider at a reasonable price?
    Many thanks, I appreciate it!

  4. Hello to all, since I am in fact eager of reading this
    website’s post to be updated regularly. It consists of
    fastidious data.

  5. I love your blog.. very nice colors & theme. Did you design this
    website yourself or did you hire someone to do it for you?
    Plz answer back as I’m looking to construct my own blog and would like to
    find out where u got this from. thanks

  6. affiliate表示:

    It’s impressive that you are getting ideas
    from this article as well as from our dialogue made at this
    time.

  7. Your style is unique compared to other folks I have read stuff from.

    Thanks for posting when you have the opportunity, Guess
    I will just bookmark this blog.

  8. Wow! This blog looks just like my old one! It’s on a totally different
    topic but it has pretty much the same page layout and design. Wonderful choice of
    colors!

  9. Hi there very nice site!! Guy .. Excellent .. Superb .. I will bookmark
    your blog and take the feeds also?I am glad to find a lot of helpful info here within the
    put up, we need work out more techniques on this regard, thank
    you for sharing.

  10. Da sich Einbrecher den Zugang meist durch ein Kellerfenster oder Erdgeschossfenster verschaffen, sollten Sie an zusätzliche Sicherheitsmaßnahmen denken. Bei einem frei zugänglichen Kellerfenster kann
    neben anderen Maßnahmen z. B. auch ein zusätzliches Fenstergitter angebracht werden.
    Auch Lichtschächte können effektiv gegen das Aufhebeln gesichert werden. Möchten Sie im Kellerwohnraum
    zusätzlich Ihre Privatsphäre schützen, können Sie das mit einer Ornamentverglasung oder einer nachträglich angebrachten Folie erreichen. Die Abmessungen eines
    Fensters bestimmen, ob es zweiflügelig sein kann
    und darf. Nicht ausbleiben zwar keine nach DIN festgelegten Doppelflügelfenster Maße, dennoch gibt es durchaus verschiedene
    typisierte Fenster mit Richtmaßen, die sich an der Mauerwerks-DIN orientieren. Zum Beispiel kann
    ein Fenster mit einer Breite oder Höhe von 40 cm keine zwei Fensterflügel haben. Nach DIN sind
    auch die Mindestgröße für Rettungswege durch Fensteröffnungen und die Mindestbelichtungsfläche von Räumen,
    die für den Daueraufenthalt von Menschen bestimmt sind, festgelegt.
    Qua Material können Doppelfenster nicht nur in verschiedenen Breiten und Höhen, sondern auch in unterschiedlichen Einbautiefen gekauft werden.

  11. Greate post. Keep posting such kind of information on your page.
    Im really impressed by your site.
    Hello there, You’ve done a fantastic job. I’ll definitely digg it and individually recommend to my friends.
    I’m confident they’ll be benefited from this web site.

  12. You can certainly see your expertise in the
    work you write. The world hopes for even more passionate writers such as you who aren’t afraid to say how they believe.
    At all times go after your heart.

  13. I view something really special in this internet site.

  14. Hello friends, its wonderful post on the topic of tutoringand completely defined, keep it
    up all the time.

  15. Its such as you learn my mind! You appear to grasp
    so much approximately this, such as you wrote the book in it or something.
    I think that you just can do with some percent to
    force the message house a little bit, but instead of that,
    that is wonderful blog. An excellent read. I will certainly be back.

  16. First of all I want to say awesome blog! I had a quick question in which I’d like to ask if
    you do not mind. I was interested to know how you center yourself and clear your
    head prior to writing. I’ve had trouble clearing my mind in getting my thoughts
    out there. I do take pleasure in writing but it just
    seems like the first 10 to 15 minutes are lost just trying to figure out
    how to begin. Any ideas or hints? Thank you!

  17. Hi I am so happy I found your website, I really found you by accident,
    while I was researching on Bing for something else, Anyhow I am here now and would just like to say thanks for a
    fantastic post and a all round enjoyable blog (I also
    love the theme/design), I don’t have time to look over it all
    at the minute but I have book-marked it and also added
    your RSS feeds, so when I have time I will be back to read more,
    Please do keep up the awesome b.

  18. I gotta favorite this internet site it seems very beneficial very useful.

  19. I have read a few excellent stuff here. Definitely value bookmarking
    for revisiting. I wonder how so much attempt you put to make this kind
    of wonderful informative site.

  20. Hello there! I could have sworn I’ve visited this
    website before but after looking at some of the articles I
    realized it’s new to me. Regardless, I’m certainly pleased I found it and I’ll be book-marking it and checking back regularly!

  21. First off I want to say wonderful blog! I had a quick question which
    I’d like to ask if you don’t mind. I was curious to know how you center yourself and clear your
    mind prior to writing. I have had a tough time clearing my mind in getting my thoughts out there.
    I truly do enjoy writing but it just seems like
    the first 10 to 15 minutes tend to be lost just trying
    to figure out how to begin. Any suggestions or tips?
    Kudos!

  22. Quality content is the key to attract the users to visit the site, that’s what this web site
    is providing.

  23. bursaiklan.id表示:

    Wow! At last I got a website from where I be able
    to in fact take valuable data concerning my study and knowledge.

  24. bonrollen表示:

    Als Lieferant Deutscher Qualitätsprodukte verzichten die Hersteller von ROLLENLAND konsequent auf
    den Einsatz von Chemikalien, die eventuell durch Ausdampfen die Gesundheit beeinträchtigen könnten nur Phenole.

    Achten Sie deshalb immer auf etwaige Warnhinweise oder gehen Sie mit Produkten aus Deutschland von ROLLENLAND auf Nummer sicher!
    Bei vielen Papieren aus dem Ausland ist dies nicht der Fall.

    Zudem sind die Anwendungsbereiche unserer Kassenrollen sehr weitreichend, was
    einen vielfältigen Einsatz in unterschiedlichen Kassensystemen möglich macht.
    Die Kassenrollen können in der Gastronomie, im Handel- und Dienstleistungs- und vielen anderen Sektoren Anwendung finden,
    da sie für die Mehrheit Kassensysteme geeignet und in unterschiedlichen Größen erhältlich sind.

    Zufolge Einsatzbereich können auch speziell bedruckte Produkte, zum Beispiel Apothekenrollen eine sinnvolle Ergänzung
    für Ihr Geschäft sein. Ob Sie nun Wert auf Umweltfreundlichkeit oder gesundheitliche
    Aspekte legen – ROLLENLAND vereint diese Eigenschaften bei
    Einhaltung höchster Qualitätsstandards in seinen Produkten. ROLLENLAND setzt beim Thema Kassenrollen auf hohe Qualität.

    Wie alle Produkte von ROLLENLAND werden sie in Deutschland nach hohen Umweltstandards hergestellt und sind frei von gesundheitsschädigenden Chemikalien. Unsere Kassenrollen werden aus holzfreiem, recyceltem Papier produziert.

  25. I don’t normally comment but I gotta say thank you for the post on this great one :D.

  26. Great post. I was checking constantly this blog and I’m impressed!

    Extremely helpful information particularly the last part :
    ) I care for such info much. I was looking for this particular information for a long time.
    Thank you and good luck.

  27. I could not refrain from commenting. Very well written!

  28. It’s in fact very difficult in this active life to listen news
    on TV, therefore I simply use the web for that reason, and take the newest news.

發佈留言

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