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,249,620 Responses

  1. Its excellent as your other articles :D, thank you for putting up.

  2. My brother suggested I might like this website. He was once entirely right.

    This submit truly made my day. You cann’t consider just how a lot time I had
    spent for this information! Thank you!

  3. This page certainly has all the information I needed about this subject
    and didn?t know who to ask.

  4. Great article! We are linking to this particularly great post on our
    website. Keep up the great writing.

  5. I wanted to thank you for this very good
    read!! I absolutely loved every little bit of it. I have you saved as
    a favorite to look at new stuff you post…

  6. EC Cashrollen表示:

    EC Cashrollen, auch Kreditkartenrollen oder Terminalrollen genannt, haben einen rückseitigen Lastschriftaufdruck.
    Hiermit ermächtige ich das umseitig ausgewiesene Unternehmen den umseitig ausgewiesenen Rechnungsbetrag von meinen umseitig durch Konto-Nummer und Bankleitzahl
    bezeichneten Konto durch Lastschrift einzuziehen. Ich weise mein Kreditinstitut,
    das durch die umseitig angegebene Bankleitzahl bezeichnet ist, unwiderruflich an, bei Nichteinlösung der Lastschrift oder
    bei Widerspruch gegen die Lastschrift des
    umseitig ausgewiesenen Unternehmen oder einem von ihm beauftragten Dritten auf dessen Anforderung hin meinen Namen und meine Anschrift vollständig mitzuteilen, damit
    das umseitig ausgewiesene Unternehmen seinen Anspruch gegen mich beherrschen kann.
    Ich bin damit einverstanden, daß meine Daten für den Zweck der Zahlungsabwicklung elektronisch gespeichert
    und verarbeitet werden. Ich bin damit einverstanden, daß nur
    im Falle der Nichteinlösung diese Tatsache in eine Sperrdatei aufgenommen und an andere Unternehmen zur Nutzung
    übermittelt wird, die ebenfalls ein solches Lastschriftverfahren anwenden. Sobald der Forderungsbetrag bezahlt ist,
    wird die Eintragung in der Sperrdatei gelöscht.

  7. Great 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 propose starting with a free platform like WordPress or go for
    a paid option? There are so many choices out there that I’m totally overwhelmed ..
    Any tips? Appreciate it!

  8. Wonderful beat ! I wish to apprentice whilst you amend
    your web site, how could i subscribe for a blog site?
    The account helped me a appropriate deal. I were a little bit familiar of this your broadcast provided bright transparent concept

  9. Sweet blog! I found it while searching on Yahoo News.
    Do you have any tips on how to get listed in Yahoo News?

    I’ve been trying for a while but I never seem to get there!

    Many thanks

  10. I am sure this piece of writing has touched
    all the internet people, its really really nice paragraph on building up new website.

  11. discuss表示:

    Just desire to say your article is as amazing. The clearness
    in your post is just excellent and i can assume you’re an expert on this
    subject. Well with your permission allow me to
    grab your feed to keep up to date with forthcoming post. Thanks
    a million and please carry on the gratifying work.

  12. Hi there, You have done a fantastic job. I’ll certainly digg it and personally recommend to my friends.
    I am sure they will be benefited from this website.

  13. Thanks for sharing your thoughts on puppiessalenearme.com.
    Regards

  14. Greetings! Very helpful advice within this post! It is
    the little changes that produce the greatest
    changes. Thanks for sharing!

  15. I every time spent my half an hour to read this website’s content all
    the time along with a cup of coffee.

  16. Thank you for the good writeup. It if truth be told was once a enjoyment account it.
    Glance complex to more brought agreeable from you! However, how can we communicate?

  17. madusamawa表示:

    Piece of writing writing is also a fun, if you be familiar
    with afterward you can write or else it is complex to write.

  18. boost表示:

    At the current time, there are nearly 2,600 Boost Mobile locations
    in the United States. Though iTunes began as a program for desktop computers, it’s now
    obtainable on some mobile devices, too. That means house
    owners of other devices should find alternatives to iTunes.

    Nonetheless, that software program is never as complete as iTunes.

    The servers enable the IT workers to control entry
    to the community, encrypt wireless transmissions and upload software program
    patches and fixes to all gadgets concurrently. Whether
    you can use Napster to Go or Napster Cell on your cellular phone depends in your
    wireless provider. An FAA spokesman said the agency was reacting to public fears that the alerts given off by cellphone might interfere with
    plane controls. Consider all of the main points
    which may come up, not solely as far as design, but in the aspect of utilization and longevity as effectively.

    Highchairs that separate as tables and chairs are additionally a good option and can be utilized effectively into
    childhood afterward. These is handy as you can reuse this later on by dismantling it as a separate desk and chair.

    Routers so you won’t have two separate devices.
    You’ll have to upgrade to some convertible child automotive seat once your child reaches 20
    lbs.

  19. Amazing blog! Is your theme custom made or did you download
    it from somewhere? A design like yours with a few simple adjustements would really make my
    blog jump out. Please let me know where you got your theme.
    Appreciate it

  20. Hi, i think that i saw you visited my web site thus
    i came to ?return the favor?.I’m trying to find things to enhance my website!I suppose its ok to use some of your ideas!!

  21. If you would like to improve your knowledge just keep visiting this
    site and be updated with the newest news posted
    here.

  22. Some genuinely interesting points you have written.Aided me a lot, just what I was searching
    for :D.

  23. Great post, I believe website owners should learn a lot
    from this website its very user genial. So much good info on here :D.

  24. kassen rollen表示:

    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 wie zum Beispiel 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 ausgedehnt, 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 in der Mehrheit Kassensysteme geeignet und in unterschiedlichen Größen erhältlich sind.
    Im sinne Einsatzbereich können auch speziell bedruckte Produkte, per exemplum 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. discuss表示:

    If you would like to take a good deal from this piece
    of writing then you have to apply such techniques to your won web site.

  26. I know this site offers quality depending articles and
    additional information, is there any other site
    which presents these kinds of things in quality?

  27. Attractive section of content. I just stumbled upon your blog and in accession capital to claim that I acquire
    actually enjoyed account your blog posts. Anyway I’ll be subscribing
    in your feeds and even I fulfillment you get entry to consistently quickly.

  28. Hi there, yes this post is really fastidious and I have learned lot of things from it regarding blogging.
    thanks.

  29. You really make it seem so easy with your presentation but
    I find this topic to be really something which I think I would never understand.
    It seems too complicated and very broad for me. I am
    looking forward for your next post, I will try to get the hang of it!

發佈留言

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