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,363,217 Responses

  1. Профессиональный сервисный центр по ремонту МФУ в Москве.
    Мы предлагаем: мфу сервисный центр москва
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  2. Michaelkeymn表示:

    Наша компания «Фотосайт по мебели для кухни» увлекается тварью и продажей качественной кухонной мебели. Автор этих строк делаем отличное предложение широкий сортамент продукции, яже отвечает наиболее передовым шаблонам также направленностям дизайна http://www.sufebey8kuhnishki.ru/.

  3. Stephengen表示:

    http://clssansordonnance.icu/# п»їpharmacie en ligne france

  4. HeathZex表示:

    pharmacie en ligne sans ordonnance: cialis sans ordonnance – pharmacie en ligne livraison europe

  5. Сервисный центр предлагает качественый ремонт электросамоката inmotion сколько стоит ремонт электросамоката inmotion

  6. В народной медицине существует множество методов лечения абсцесса народными средствами, которые включают использование различных трав и настоев. Эти методы помогают уменьшить воспаление, снизить болевые ощущения и ускорить процесс заживления. Такие натуральные средства, как каланхоэ, алоэ и зверобой, обладают антисептическими и ранозаживляющими свойствами, что делает их эффективными в борьбе с абсцессами.

  7. Aw, this was an incredibly nice post. Taking the time and actual effort to create a good article… but what can I say…
    I procrastinate a whole lot and don’t manage to get anything done.

  8. Stephengen表示:

    http://vgrsansordonnance.com/# Viagra femme ou trouver

  9. Charlesrab表示:

    Pharmacie Internationale en ligne Cialis sans ordonnance 24h trouver un mГ©dicament en pharmacie

  10. Joshua Bailey表示:

    В народной медицине существует множество методов лечения абсцесса народными средствами, которые включают использование различных трав и настоев. Эти методы помогают уменьшить воспаление, снизить болевые ощущения и ускорить процесс заживления. Такие натуральные средства, как каланхоэ, алоэ и зверобой, обладают антисептическими и ранозаживляющими свойствами, что делает их эффективными в борьбе с абсцессами.

  11. Веломагазин Москва velosiped-internet-magazin.ru

    Если Вы планировали найти веломагазины в москве то переходите к нам. Представляем услугу платного хранения велосипедов в Москве по смешным ценам. Для квартир без подвалов или балконов очень удобно на холодное время отдать велосипед на хранение в спец место. У нас вы получите прекрасный сервис с доставкой по возможности.

  12. Gladis表示:

    It’s A Togel4d Success Story You’ll Never Believe togel sydney; Gladis,

  13. В народной медицине существует множество методов лечения абсцесса народными средствами, которые включают использование различных трав и настоев. Эти методы помогают уменьшить воспаление, снизить болевые ощущения и ускорить процесс заживления. Такие натуральные средства, как каланхоэ, алоэ и зверобой, обладают антисептическими и ранозаживляющими свойствами, что делает их эффективными в борьбе с абсцессами.

  14. Казино Вавада — это популярная онлайн-платформа для азартных игр.
    Здесь представлены множество игровых автоматов, а также классические настольные игры.
    Главное преимущество Вавада — это
    щедрая бонусная программа, включая фриспины
    и другие акции.

  15. You actually stated that wonderfully.

    Here is my web blog :: https://mostbet-bk.de

  16. Charlesrab表示:

    Pharmacie Internationale en ligne Cialis sans ordonnance 24h pharmacie en ligne france pas cher

  17. next page表示:

    I have read so many posts concerning the blogger lovers except this paragraph is really a pleasant article,
    keep it up.

  18. Stephengen表示:

    https://clssansordonnance.icu/# pharmacie en ligne livraison europe

  19. Stephengen表示:

    https://vgrsansordonnance.com/# SildГ©nafil Teva 100 mg acheter

  20. untrustable表示:

    porn cannibalism

  21. Gartandabsex表示:

    Как развеселить друга с помощью забавных приколов

  22. Charlesrab表示:

    Viagra sans ordonnance 24h suisse Sildenafil Viagra Meilleur Viagra sans ordonnance 24h

  23. Gartandabsex表示:

    Как поддерживать хорошее настроение с помощью смешных приколов

  24. Stephengen表示:

    https://vgrsansordonnance.com/# Viagra gГ©nГ©rique sans ordonnance en pharmacie

  25. Gartandabsex表示:

    Как поддерживать хорошее настроение с помощью забавных приколов

  26. HeathZex表示:

    pharmacie en ligne fiable: cialis generique – pharmacie en ligne france fiable

  27. JamesBuice表示:

    mexico drug stores pharmacies: mexican pharmacy – mexican border pharmacies shipping to usa
    mexican mail order pharmacies

  28. Thomasskich表示:

    Came across an interesting article, worth a glance https://pixabay.com/users/45785329/

發佈留言

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