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,449,048 Responses

  1. Antoniofep表示:

    Betzula guncel giris, spor bahisleri konusunda benzersiz secenekler sunar. buyuk futbol kars?lasmalar? icin guvenli bir sekilde canl? bahis oynamaya baslayabilirsiniz.

    Betzula’n?n h?zl? odeme yontemleri, profesyonel hizmet garantisi verir. Bet Zula sosyal medya hesaplar?yla yeni kampanyalardan haberdar olabilirsiniz.

    favori futbol kuluplerinizin maclar?n? takip edebilir.

    Ayr?ca, bet zula giris linki, kesintisiz bahis deneyimi sunar. Ozel olarak, betzula giris, profesyonel bir deneyim saglar.

    Betzula, spor bahislerinden canl? casino oyunlar?na kadar profesyonel bir hizmet sunar. en guncel oranlar? gormek icin hemen Betzula’ya kat?l?n!
    707707+

  2. webpage表示:

    Купите свою идеальную квартиру!

    Ищете комфорт и уют? У нас есть решение!

    Современная квартира в центре города:
    – Просторные комнаты и современный
    дизайн.
    – В шаговой доступности магазины,
    школы и парки.
    – Хорошая инвестиция: растущие цены на жилье!

    Не упустите шанс! Запишитесь на просмотр и станьте владельцем квартиры своей мечты!
    Звоните сейчас!==>>>
    жк достоевский москва

  3. Antoniofep表示:

    Betzula Twitter, en populer bahis platformu konusunda yenilikci cozumler sunar. Fenerbahce Galatasaray derbisi icin en h?zl? sekilde canl? bahis oynamaya baslayabilirsiniz.

    Betzula’n?n yuksek guvenlik onlemleri, sorunsuz bir deneyim sunar. guncel duyurular? kac?rmadan yeni kampanyalardan haberdar olabilirsiniz.

    favori futbol kuluplerinizin en iyi oranlarla kazanc saglayabilirsiniz.

    Ayr?ca, bet zula giris linki, mobil cihazlar uzerinden kolay erisim sunar. Ozel olarak, https://apsistek.com/bonuslar/ – betzula guncel giris, kolay ve h?zl? giris imkan?.

    Betzula, en genis bahis seceneklerinden ozel turnuvalara kadar tum kullan?c?lar?n ihtiyaclar?n? kars?lar. favori tak?m?n?z?n galibiyetini kutlamak icin hemen Betzula’ya kat?l?n!
    707707+

  4. Brandonnot表示:

    certified canadian pharmacy: CanadianMdPharm – canadian pharmacy

  5. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт ipad mini 3 цены, можете посмотреть на сайте: ремонт ipad mini 3
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  6. stoya4ok.ru表示:

    Продажа дженериков с доставкой https://stoya4ok.ru/ большой выбор отличные цены

  7. Thank you for every other informative blog. Where else may
    I am getting that kind of info written in such an ideal approach?
    I’ve a venture that I’m just now operating on, and I’ve been on the look
    out for such info.

  8. Brandonnot表示:

    Mexican Easy Pharm: mexico drug stores pharmacies – Mexican Easy Pharm

  9. Passion the website– really user friendly and great deals to see!

    https://orzesze.com.pl

  10. вывод из запоя нижний новгород стационар [url=vyvod-iz-zapoya-v-stacionare21.ru]вывод из запоя нижний новгород стационар[/url] .

  11. вывод из запоя в стационаре воронежа [url=www.vyvod-iz-zapoya-v-stacionare-voronezh24.ru]вывод из запоя в стационаре воронежа[/url] .

  12. Medication information sheet. Generic Name.
    can you buy macrobid pills
    Some information about medicine. Read information now.

  13. CurtisBam表示:

    Mexican Easy Pharm: buying prescription drugs in mexico – buying prescription drugs in mexico

  14. CurtisBam表示:

    Indian Cert Pharm: best india pharmacy – Best Indian pharmacy

  15. Iyannaobesk表示:

    онлайн школа покера
    лучшая онлайн школа покера

  16. agentoto88表示:

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

  17. Timothy Klein表示:

    This was very insightful. Check out retreat for more

  18. Brandonnot表示:

    canadian compounding pharmacy: Canadian Md Pharm – is canadian pharmacy legit

  19. Pumps for penis. A pump for penis (a vacuum erection device) it a hollow tube with a manual drive https://www.stoneaston.co.uk/ or a battery-powered pump.

發佈留言

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