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,231,169 Responses

  1. Slot Bank Neo表示:

    Everyone loves what you guys are usually up too. This sort of clever work
    and exposure! Keep up the good works guys
    I’ve included you guys to my personal blogroll.

  2. unsplash.com表示:

    Thanks for another informative blog. Where else may just I get that type of
    info written in such a perfect way? I’ve a venture that
    I am just now working on, and I have been on the glance out for such info.

  3. Hurrah, that’s what I was looking for, what a stuff!
    existing here at this weblog, thanks admin of this website.

  4. Howdy would you mind letting me know which hosting company you’re utilizing?
    I’ve loaded your blog in 3 completely different browsers and I must say this blog loads a lot quicker then most.
    Can you suggest a good internet hosting provider at a honest price?
    Many thanks, I appreciate it!

  5. This text is priceless. How can I find out more?

  6. No matter if some one searches for his vital thing, so he/she desires to be available that in detail, thus that thing is maintained over here.

  7. This blog was… how do you say it? Relevant!! Finally I’ve found something
    which helped me. Thanks a lot!

  8. Hey I am so grateful I found your blog page, I really found you by mistake, while I was browsing on Askjeeve
    for something else, Anyhow I am here now and would just like
    to say thanks for a remarkable post and a all round enjoyable blog (I also love the theme/design), I don’t have
    time to read through it all at the minute but I have saved it and also included your RSS feeds,
    so when I have time I will be back to read a great
    deal more, Please do keep up the superb job.

  9. ski fahren表示:

    Sie haben ihren eigenen Pool. Unter Corona ist das verboten.
    Die Baustelle liegt auf Eis. Den kompletten Maßnahmenkatalog des Tourismusministeriums scheint noch keiner gesehen empfänglich.

    Yesim Yalcin ist Ärztin in Antalya und macht etwelche Tage mit ihrem Bruder
    und seiner Frau hier Urlaub. Das Hotel bleibe diese Saison am besten zu.

    Normalerweise wird das ende des Fastenmonats mit Familie und Freunden gefeiert.
    Nicht nur Sevki Erdogan hofft, dass viele Einschränkungen Anfang Juni fallen. Bis Mitte Juni
    warnt die Bundesregierung allerdings alle Deutschen, ins Ausland zu reisen. Um deutsche
    Urlauber trotz Corona wieder in die Türkei zu locken, holt die Regierung in Ankara den TÜV ins
    Boot. In diesem Augenblick sind seine Hotelzimmer alle leer,
    nur manche der luxuriösen Villen sind belegt.
    Ein Hotelzimmer hätte sie allerdings nicht genommen. Die dürfen in diesen Tagen allerdings Staub ansetzen. Ferienhäuser werden diese Saison wohl insgesamt
    mehr gefragt sein. Schwimmen und Spazieren am Meer ist verboten. Die Türkei
    will, dass sie das bis zu den Sommerferien aufhebt.
    Der Küstenort Kas in der Türkei im Oktober 2019 – damals war
    die Welt noch frei von Corona. Bad in einem der Zimmer begutachtet.

    Im kleinen Boutique-Hotel fragen erst recht Merih Ciraks Stammgäste,
    wann sie diese Saison aufmacht. Der Hotelchef kann das nicht verstehen “Es gibt einige Entscheidungen, die zu nichts führen”, sagt
    er. Ihr Vater bleibt dagegen dabei: Urlaub mit Corona mache keinen Spaß und sei gefährlich.
    Sicher ist das aber nicht.

  10. Quality posts is the crucial to invite the people to go to see the website, that’s what this site is providing.

  11. Fenster für Wohnmobil, Bus oder Caravan gibt es in den unterschiedlichsten Ausführungen. Dabei unterscheiden sich die verschiedenen Modelle grundsätzlich zum Thema Größe, Form (z.B.
    Öffnungsmechanismus (z.B. Schiebe- oder Ausstellfunktion) und den zusätzlichen Extras (z.B.
    Damit du bei der großen Vielfalt nicht den Überblick verlierst und das passende
    Modell findest, erklären wir dir nachfolgend die Unterschiede zwischen den verschieden Fahrzeugfenstern. Ausstellfenster
    sind die am häufigsten in Wohnmobil und Wohnwagen verbauten Fenster.

    Sie eignen sich hervorragend für fast jeden Fahrzeugtyp.
    Wir haben verschiedene Systeme wie sich die Scheiben aufstellen oder fixieren lassen. Klick-Klack-Aussteller rasten auf der gewünschten Höhe ein und lassen sich durch leichtes Anheben der Scheibe aus der Ausstellposition lösen.
    Schiebefenster ragen nicht über die Karosserie hinaus
    und werden beispielsweise im Laufweg einer Tür eingebaut.
    Aussteller mit Feststellrädchen führen eine stufenlose Öffnung.
    Sie können während der Fahrt geöffnet bleiben und
    sorgen auch Unterwegs für eine gute Belüftung. Ältere Schiebefenster mussten aufgrund seitlicher Regen-Abläufe in Fahrtrichtung rechts
    oder links eingebaut werden. Auf der „falschen Seite” eingebaut, suchte sich während der Fahrt Regen oder Spritzwasser den Weg ins Fahrzeuginnere.Die aktuellen Baureihen lassen sich flexibel rechts wie links zur Fahrtrichtung einbauen und bleiben dicht in alle Richtungen.

  12. This site was… how do you say it? Relevant!! Finally I have found something
    that helped me. Thanks a lot!

  13. I was curious if you ever thought of changing the layout of your blog?

    Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so people
    could connect with it better. Youve got an awful lot of text for only having one or 2
    images. Maybe you could space it out better?

  14. I have to thank you for the efforts you’ve put in writing this site.
    I am hoping to view the same high-grade blog
    posts from you later on as well. In truth, your creative writing abilities has inspired me to get my own, personal
    site now 😉

  15. I love it when individuals get together and share
    opinions. Great website, continue the good work!

  16. It’s going to be end of mine day, however before ending I am reading this wonderful piece of writing to
    improve my experience.

  17. great points altogether, you just received a new reader. What may you recommend in regards to
    your submit that you made a few days ago? Any sure?

  18. Everything is very open with a clear explanation of the challenges.
    It was really informative. Your website is very helpful.
    Thank you for sharing!

  19. If you would like to grow your knowledge only keep visiting
    this website and be updated with the most up-to-date information posted here.

  20. Nice blog here! Also your site loads up very fast! What web host are you using?
    Can I get your affiliate link to your host? I wish my site loaded up as
    quickly as yours lol

  21. Neat blog! Is your theme custom made or did you download it from somewhere?

    A design like yours with a few simple tweeks would really make my blog shine.

    Please let me know where you got your theme. Kudos

  22. Hello there! Would you mind if I share your blog with my twitter group?

    There’s a lot of folks that I think would really appreciate your content.
    Please let me know. Thanks

  23. I’m really impressed with your writing skills as well as with the layout
    on your blog. Is this a paid theme or did you customize it
    yourself? Either way keep up the excellent quality writing, it’s rare to
    see a nice blog like this one these days.

  24. You could certainly see your enthusiasm in the article you write.
    The arena hopes for more passionate writers such as you who are
    not afraid to mention how they believe. At all times go
    after your heart.

  25. Someone necessarily assist to make significantly articles I’d state.
    That is the first time I frequented your website page and up to now?
    I surprised with the analysis you made to make this actual submit incredible.
    Excellent process!

  26. I enjoy, result in I found exactly what I was taking a look for.
    You have ended my four day lengthy hunt! God Bless you man. Have a great day.
    Bye

  27. of course like your web site however you have to take a look at the spelling on quite a few of your posts.
    A number of them are rife with spelling issues and I in finding
    it very troublesome to inform the truth on the other hand
    I will surely come back again.

  28. My family members always say that I am wasting my time here at net, however I know I
    am getting knowledge everyday by reading thes pleasant posts.

  29. Everything is very open with a clear clarification of the issues.
    It was truly informative. Your site is very helpful. Thanks for sharing!

發佈留言

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