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,448,212 Responses

  1. This Is The Complete Listing Of Power Tools Near Me Dos And Don’ts Buy tools online

  2. Antoniofep表示:

    Betzula giris, en populer bahis platformu konusunda essiz deneyimler sunar. derbi heyecan? icin guvenli bir sekilde kazanma sans?n?z? art?rabilirsiniz.

    Betzula’n?n h?zl? odeme yontemleri, profesyonel hizmet garantisi verir. guncel duyurular? kac?rmadan en son haberlerden haberdar olabilirsiniz.

    en onemli spor etkinliklerinin maclar?n? takip edebilir.

    Ayr?ca, platformun en yeni versiyonu, mobil cihazlar uzerinden kolay erisim sunar. Ozel olarak, https://apsistek.com/ – betzula twitter, profesyonel bir deneyim saglar.

    Betzula, mobil uyumlu ve h?zl? erisim f?rsatlar?na kadar profesyonel bir hizmet sunar. favori tak?m?n?z?n galibiyetini kutlamak icin simdi giris yap?n!
    707707+

  3. Dannyfut表示:

    deep web markets dark internet https://github.com/darknetmarkets24/darknet-markets – tor markets

  4. CurtisBam表示:

    mexican drugstore online: Mexican Easy Pharm – mexican pharmaceuticals online

  5. Dannyfut表示:

    free dark web dark internet https://github.com/darknetmarkets24/darknet-markets – the dark internet

  6. It’s The Buy A Category B Driving License Without An Exam Case Study You’ll Never Forget prawo jazdy kat c

  7. I’ve had my fair share of phone issues, and finding a reliable mobile repair service is crucial. Thanks for sharing these insights! For more info, visit professional mac fixing

  8. Antoniofep表示:

    Bet Zula, spor bahisleri konusunda yenilikci cozumler sunar. buyuk futbol kars?lasmalar? icin betzula guncel giris baglant?s? ile favori tak?mlar?n?za destek olabilirsiniz.

    Betzula’n?n yuksek guvenlik onlemleri, her cihazdan erisim imkan? tan?r. Bet Zula sosyal medya hesaplar?yla ozel promosyonlardan haberdar olabilirsiniz.

    Fenerbahce ve Galatasaray gibi buyuk tak?mlar?n bahislerinizi an?nda yapabilirsiniz.

    Ayr?ca, platformun en yeni versiyonu, kullan?c?lara s?n?rs?z erisim sunar. Ozel olarak, betzula guncel giris, profesyonel bir deneyim saglar.

    Betzula, spor bahislerinden canl? casino oyunlar?na kadar tum kullan?c?lar?n ihtiyaclar?n? kars?lar. favori tak?m?n?z?n galibiyetini kutlamak icin simdi giris yap?n!
    707707+

  9. Love the website– really individual pleasant and lots to see!

    https://orzesze.com.pl

  10. Antoniofep表示:

    Betzula Twitter, spor bahisleri konusunda benzersiz secenekler sunar. buyuk futbol kars?lasmalar? icin en h?zl? sekilde yuksek oranlar? kesfedebilirsiniz.

    Betzula’n?n mobil uyumlu tasar?m?, profesyonel hizmet garantisi verir. Bet Zula sosyal medya hesaplar?yla ozel promosyonlardan haberdar olabilirsiniz.

    Fenerbahce ve Galatasaray gibi buyuk tak?mlar?n en iyi oranlarla kazanc saglayabilirsiniz.

    Ayr?ca, platformun en yeni versiyonu, kullan?c?lara s?n?rs?z erisim sunar. Ozel olarak, https://apsistek.com/yorumlar/ – betzula, kolay ve h?zl? giris imkan?.

    Betzula, spor bahislerinden canl? casino oyunlar?na kadar profesyonel bir hizmet sunar. en guncel oranlar? gormek icin simdi giris yap?n!
    707707+

  11. Great internet site! It looks really professional! Keep up the excellent job!

    https://www.oto-praca.pl

  12. web.789win表示:

    789win – Nhà cái cá cược trực tuyến uy
    tín, đa dạng trò chơi: thể thao, casino, bắn cá,
    nổ hũ. Khuyến mãi hấp dẫn, giao diện thân thiện, bảo mật cao.

  13. вывода из запоя в стационаре http://vyvod-iz-zapoya-v-stacionare21.ru .

  14. Dannyfut表示:

    dark web market links how to access dark web https://github.com/darknetmarkets24/darknet-markets – darknet markets

  15. Dannyfut表示:

    tor dark web black internet https://github.com/darknetmarkets24/darknet-markets – darkmarket url

  16. CurtisBam表示:

    Indian Cert Pharm: indian pharmacy – Indian pharmacy international shipping

  17. Antoniofep表示:

    Betzula giris, casino oyunlar? konusunda ustun f?rsatlar sunar. buyuk futbol kars?lasmalar? icin en h?zl? sekilde favori tak?mlar?n?za destek olabilirsiniz.

    Betzula’n?n mobil uyumlu tasar?m?, profesyonel hizmet garantisi verir. guncel duyurular? kac?rmadan en son haberlerden haberdar olabilirsiniz.

    Fenerbahce ve Galatasaray gibi buyuk tak?mlar?n heyecan?n? Betzula ile yasayabilirsiniz.

    Ayr?ca, platformun en yeni versiyonu, kullan?c?lara s?n?rs?z erisim sunar. Ozel olarak, bet zula giris, profesyonel bir deneyim saglar.

    Betzula, mobil uyumlu ve h?zl? erisim f?rsatlar?na kadar en iyi deneyimi yasatmay? amaclar. Fenerbahce Galatasaray derbisi icin bahis yapmak icin hemen Betzula’ya kat?l?n!
    707707+

  18. Antoniofep表示:

    Bet Zula, casino oyunlar? konusunda benzersiz secenekler sunar. Fenerbahce Galatasaray derbisi icin betzula guncel giris baglant?s? ile kazanma sans?n?z? art?rabilirsiniz.

    Betzula’n?n guvenilir altyap?s?, kullan?c?lar?na her zaman kolayl?k saglar. guncel duyurular? kac?rmadan ozel promosyonlardan haberdar olabilirsiniz.

    Turkiye Super Lig derbilerinin heyecan?n? Betzula ile yasayabilirsiniz.

    Ayr?ca, bet zula giris linki, mobil cihazlar uzerinden kolay erisim sunar. Ozel olarak, bet zula giris, tum bahis severler icin en iyi cozum.

    Betzula, spor bahislerinden canl? casino oyunlar?na kadar en iyi deneyimi yasatmay? amaclar. favori tak?m?n?z?n galibiyetini kutlamak icin Betzula ile kazanmaya baslay?n!
    707707+

  19. ssstwitter表示:

    Hello there! This is kind of off topic but I need some advice from an established blog.
    Is it hard to set up your own blog? I’m not very techincal
    but I can figure things out pretty fast. I’m thinking about creating my own but I’m not sure where to start.

    Do you have any ideas or suggestions? Thanks

  20. goldpay表示:

    How Safe Is Online Shopping? The Top 4 Secret Tips To Stop You From
    Being Duped goldpay

  21. Oh my goodness! Incredible article dude! Thanks, However I am having difficulties with your RSS.
    I don’t know why I can’t subscribe to it. Is there
    anyone else getting similar RSS problems? Anyone that knows the solution can you kindly respond?
    Thanks!!

  22. выведение из запоя в нижнем новгороде выведение из запоя в нижнем новгороде .

發佈留言

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