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,227,697 Responses

  1. Hi there I am so thrilled I found your website, I really found you by error,
    while I was looking on Askjeeve for something else, Anyhow I am here now and would just
    like to say kudos for a remarkable post and
    a all round enjoyable blog (I also love the theme/design),
    I don’t have time to browse it all at the moment but I have saved it and also added
    in your RSS feeds, so when I have time I will be back to read a great deal
    more, Please do keep up the great work.

  2. This is very interesting, You’re a very skilled blogger. I’ve joined your rss
    feed and look forward to seeking more of your fantastic post.
    Also, I’ve shared your website in my social networks!

  3. Usually I do not read article on blogs, but I would like to say that this write-up very pressured me to take a look at and do so!
    Your writing taste has been amazed me. Thank you, very great article.

  4. Hello, i read your blog from time to time and i own a similar one and i
    was just curious if you get a lot of spam comments? If so how do
    you reduce it, any plugin or anything you can suggest? I get so much lately it’s driving
    me crazy so any support is very much appreciated.

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

  6. Hi to all, for the reason that I am in fact eager of reading
    this blog’s post to be updated regularly. It includes
    good material.

  7. ski fahren表示:

    Über dieses Thema berichtete ARD-Brisant am 28.
    Dezember 2020 um 17:15 Uhr. Auch in Thüringen (Weltkindertag am 20.

    September) und Sachsen (Ruhetag am 17. November) ist noch ein längerer Herbsturlaub mit
    Brückentagen möglich. In Baden-Württemberg, Bayern, Nordrhein-Westfalen, Rheinland-Pfalz und
    dem Saarland winkt immerhin zu Allerheiligen am 1.
    November ein Wochenende – ein Montag. Ein gesetzlicher Feiertag ist er aber nur in Baden-Württemberg,
    Bayern, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und im
    Saarland sowie in einigen Teilen Sachsens und Thüringens.
    Herrühren von Fronleichnam: Der Feiertag fällt auf Donnerstag, den 3.
    Juni, und bietet somit weitere Chancen für Brückentage.
    Im Herbst können Arbeitnehmer nicht auf viele Feiertage hoffen: Feiertag, der Tag der Deutschen Einheit und auch der Reformationstag
    fallen jeweils auf einen Sonntag. Wer dort sogar vom 14. Mai bis zum 4.

    Juni Urlaub einreicht, kann übrigens Himmelfahrt und Pfingsten bestmöglich mit Fronleichnam
    verbinden – und durch den Einsatz von 14 Urlaubstagen einen Urlaub von 25
    Tagen erreichen. Wer sich auch die vier Tage danach frei nehmen möchte,
    kann daraus einen insgesamt neun Tage langen Urlaub machen. Sollte sich die Corona-Pandemie im kommenden Jahr fertigkriegen lassen, ist
    vielleicht auch wieder ein ausgedehnter Strandurlaub möglich.

  8. Paragraph writing is also a excitement, if you be familiar with after that you can write otherwise it is complicated to write.

  9. whoah this blog is magnificent i really like studying your articles.
    Stay up the great work! You realize, a lot of individuals are searching round for this info, you can help them greatly.

  10. I do consider all the ideas you’ve offered in your post.

    They are very convincing and can definitely work.
    Nonetheless, the posts are very quick for starters.

    May you please lengthen them a little from subsequent time?
    Thank you for the post.

  11. Wow, marvelous blog structure! How lengthy have you been running a blog for?

    you make running a blog look easy. The whole glance of your web site is great,
    as well as the content!

  12. konya escort表示:

    Hey there just wanted to give you a quick heads up. The words in your content seem to be running off the
    screen in Internet explorer. I’m not sure if this
    is a formatting issue or something to do with internet
    browser compatibility but I thought I’d post to let you know.
    The design look great though! Hope you get the problem fixed soon. Cheers

  13. I really like your blog.. very nice colors & theme.
    Did you make this website yourself or did you hire someone to do it for you?
    Plz reply as I’m looking to create my own blog and would like to
    know where u got this from. many thanks

  14. I just could not go away your web site before suggesting that I extremely loved the usual info a
    person supply in your visitors? Is going to be again steadily in order to check up on new posts

  15. Hi there everybody, here every one is sharing such know-how, thus it’s good to read this
    weblog, and I used to pay a quick visit this webpage daily.

  16. kassenrollen表示:

    Auf der Rückseite befindet sich zumeist ein zusätzlicher Text, der für steuerliche Aspekte eine wichtige rolle spielt.
    Die Gastronomie-Bon Rolle kann nur in Wirtsbetrieben zum Einsatz kommen und ist für andere Lokalanbieter, wie Kioske und Tankstellen uninteressant.
    Der Vorteil besteht darin, dass der Wirt keinen zusätzlichen steuerrelevanten Text erfassen muss,
    dieser wird bei den meisten Rollen direkt bei der Produktion mitgedruckt.
    Bei den zweilagigen Rollen handelt es sich um ein Blatt mit einem hinteren Durchschlag, wobei ein Beleg
    für den Kunden und einer für den Geschäftsinhaber gedacht ist.
    Für diese Art von Rolle benötigt man einen speziellen Drucker mit Farbnadel.
    Dazu an der Zeit sein einen speziellen Fachmarkt aufsuchen, der
    diese Art von Rolle noch verkauft. Gerade, wenn man jeweils ein Rechnungsexemplar selber selber und einen für
    den Kunden benötigt, so ist ein einsamer einmalige Erfassung notwendig.
    Beim Ticket Bon handelt es sich um festeres bzw. dickeres Papier, welches zum Druck von Tickets besonders gut geeignet sind.
    Gerade Tickets weißen einen höheren Verschleiß auf und weisen somit ein stabileres Papier aus.

  17. satta king表示:

    Spot on with this write-up, I actually believe that this website needs far
    more attention. I’ll probably be returning to see more, thanks for the information!

  18. aztec gems表示:

    Game ini pas buat anda permainkan saat perayaan natal dengan Sweet Bonanza Xmas.
    Slot dengan penampilan skema 5×6 yang bakal bayar pada block
    mana saja. Banyak cemilan dingin yang menimbun untuk dapat memperoleh kemenangan fantastis dan dengan ada pengali sampai 100x yang dapat jatuh
    pada set free spin. Game sweet bonanza demo yang enggak jauh
    berbeda dengan versus asli yang memakai
    betting uang asli baik ketentuan atau langkah permainannya.

  19. Hi! I just wanted to ask if you ever have any issues with hackers?
    My last blog (wordpress) was hacked and I ended up
    losing months of hard work due to no data backup.
    Do you have any methods to protect against hackers?

  20. Die Verbindung, welche die Haut mit der Tatowierung eingeht, besteht nicht nur auf der Oberflache des Korpers,
    sondern geht viel tiefer in diesen hinein. Die Haut spielt
    eine bedeutende Rolle und ist daher aus einer anderen Perspektive zu betrachten,
    als nur die eines bloBen Tragers der Tatowierung und einer
    Hulle des Korpers. In diesem Kapitel untersuche ich
    die gegenwartige westliche Hautvorstellung, die Wahrnehmung des Korperbildes und die Bedeutung der Haut fur die Tatowierung.
    Das vorherrschende kollektive Korperbild in Europa hat sich seit
    der cartesianischen Spaltung in Leib und Seele, Geist
    und Korper nur wenig gewandelt. Die Biologie des materiellen Korpers
    gilt als gegeben und unwandelbar. Dieses leibesphilosophische Denken, welches
    der Kultur den Geist und der Natur den Korper zuschreibt, begreift sich selbst als
    auBerhalb der Geschichte stehend. Sie markiert als Grenze das Innen und
    AuBen. Die Haut ist eng verknupft mit der Leibeswahrnehmung.
    Zwar wandelte sich die Leibeswahrnehmung im 18. Jahrhundert mit den Anfangen der Anatomie,
    denn das geheimnisvolle Dahinterliegende wurde sichtbar gemacht.
    Doch dem kollektiven Korperbild entsprechend, dient die Haut noch immer
    zur Begrenzung des Korpers (Benthien, 1999, S. 15­17). Dieses Korperbild wurde durch das
    subjektbezogene Denken besonders gefordert, welches das menschliche Zentrum im Inneren des Korpers sieht
    (Benthien, 1999, S.11-12).

  21. Does your blog have a contact page? I’m having trouble locating it
    but, I’d like to shoot you an email. I’ve got some ideas for your blog you might be interested in hearing.

    Either way, great blog and I look forward to seeing it
    grow over time.

  22. Hey very nice blog!

  23. I’ve been surfing online more than three hours today, yet I never found any interesting article like yours.
    It’s pretty worth enough for me. In my view, if all web owners and bloggers made good content as you did, the
    net will be a lot more useful than ever before.

  24. I enjoy what you guys tend to be up too. This type of clever work and reporting!
    Keep up the amazing works guys I’ve incorporated you guys to blogroll.

  25. I don’t even understand how I stopped up right here, but I
    thought this publish was good. I do not realize who you’re but certainly you’re going to a well-known blogger when you aren’t already.
    Cheers!

  26. Attractive component of content. I just stumbled
    upon your blog and in accession capital to assert that I acquire actually loved account your
    blog posts. Any way I’ll be subscribing to your augment or even I achievement you get
    right of entry to consistently rapidly.

  27. Fantastic goods from you, man. I have understand your stuff previous to and you’re just too excellent.
    I really like what you have acquired here, really like what you are saying
    and the way in which you say it. You make it entertaining and you
    still care for to keep it sensible. I can not wait to read
    much more from you. This is really a tremendous web site.

  28. The other day, while I was at work, my sister stole my iphone and tested to see if it can survive a thirty foot drop,
    just so she can be a youtube sensation. My iPad is now broken and she has 83 views.

    I know this is entirely off topic but I had to share it with someone!

  29. Saved as a favorite, I love your blog!

  30. I’m gone to tell my little brother, that he should also go to see this webpage on regular basis to obtain updated from latest
    news.

發佈留言

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