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,368,994 Responses

  1. doyok168表示:

    Good post. I learn something totally new and challenging on blogs
    I stumbleupon everyday. It will always be exciting to read through articles from other writers and use something from other sites.

    Feel free to surf to my page – doyok168

  2. Markdob表示:

    Всем привет! Может кто знает, где найтиразные блоги о недвижимости? Пока нашел – https://keskps.ru

  3. casino表示:

    lgbt porn

  4. This is a good tip particularly to those fresh to the blogosphere.
    Simple but very accurate information… Many thanks
    for sharing this one. A must read post!

  5. Markdob表示:

    Всем привет! Может кто знает, где найтиразные статьи о недвижимости? Сейчас читаю – https://keskps.ru

  6. Узнай все о гистероскопия полипа матки цена москваудаление полипа в матке цена

  7. Markdob表示:

    Приветствую. Может кто знает, где почитатьразные статьи о недвижимости? Пока нашел – https://keskps.ru

  8. Markdob表示:

    Всем привет! Подскажите, где почитатьразные статьи о недвижимости? Сейчас читаю – https://keskps.ru

  9. К слову, заметим, что играть на сайте pin-up-casino-avtomaty.com могут только совершеннолетние игроки.

  10. 주소모음表示:

    8 Essentials For Building Your Online Revenues 주소모음

  11. Анна Черникова, индивидуальный
    психолог, предлагает онлайн-консультации для тех,
    кто хочет улучшить своё психологическое состояние
    и наладить отношения с окружающими.
    Она использует современные методы и техники, чтобы помочь своим клиентам
    справиться с такими проблемами как
    паническое расстройство и другими проблемами.

    Анна Черникова имеет высшее образование
    в области психологии и многолетний опыт работы с людьми разных возрастов и социальных групп.

  12. When I originally commented I clicked the “Notify me when new comments are added” checkbox and
    now each time a comment is added I get several emails with the same comment.

    Is there any way you can remove people from that service?
    Many thanks!

  13. Greetings from Colorado! I’m bored to death at work so
    I decided to check out your site on my iphone during lunch
    break. I really like the knowledge you provide here and can’t wait to take a look when I get home.
    I’m amazed at how fast your blog loaded on my cell phone ..

    I’m not even using WIFI, just 3G .. Anyways, fantastic site!

  14. Blakesmema表示:

    изготовление кухни на заказ — Профессиональное изготовление кухонь по индивидуальным параметрам.

  15. Nikefut表示:

    darknet drug market darkmarket https://darknetmarketstore.com/ – onion market

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

    Моды для игр дают невероятную
    персонализированный подход, что взаимодействие с игрой
    гораздо красочнее. Играя с твиками, я могу повысить уровень
    сложности, что добавляет новые приключения и
    делает игру более непредсказуемой.

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

    Обязательно попробуйте попробовать такие модифицированные версии для Android —
    это может добавить веселья в геймплей

  17. Volvo Replacement Keys: The Good, The Bad, And The Ugly New Volvo key cost

  18. Узнай все о гистероскопия матки удаление полипа москваудаление полипа эндометрия москва

  19. scam表示:

    Appreciate the recommendation. Let me try it out.

  20. Valuable information. Lucky me I found your site accidentally, and I
    am stunned why this coincidence didn’t happened in advance!

    I bookmarked it.

  21. Lazruoc表示:

    Процесс получения диплома стоматолога: реально ли это сделать быстро?
    avtomobil1980.ixbb.ru/post.php?fid=1

  22. Azaliumbit表示:

    What’s up to every , since I am in fact eager of reading this webpage’s post to be updated
    daily. It consists of good information.

  23. You actually make it appear so easy along with your presentation however I find this matter to be actually
    one thing that I believe I might by no means understand.

    It seems too complex and extremely large for me.
    I am looking ahead for your subsequent post, I will try to get the cling of it!

  24. Very nice post. I definitely appreciate this
    site. Stick with it!

發佈留言

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