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...

852,219 Responses

  1. TornNep表示:

    most reliable darknet markets tor market list

  2. about表示:

    Ahaa, its good discussion concerning this post here at this webpage,
    I have read all that, so at this time me also commenting here.

    My blog; about

  3. TornNep表示:

    bitcoin darknet markets cannazon market link

  4. TornNep表示:

    how to get on the dark web free deep web links

  5. TornNep表示:

    dark web search engines link russian darknet market

  6. RandyHic表示:

    working darknet markets 2022 blackweb darknet market

  7. JamesWhise表示:

    darknet market comparison agora darknet market

  8. Brenna表示:

    %%

    my blog post replacement upvc door handles
    (Brenna)

  9. Calvindit表示:

    buy cheap bactrim amoxicillin without a prescription

  10. Timmybob表示:

    new onion darknet market ruonion

  11. online casino表示:

    Sports betting. Bonus to the first deposit up to 500 euros.

    online casino

  12. Hi there, just became aware of your blog through Google, and found that
    it’s really informative. I’m gonna watch out for brussels.

    I’ll appreciate if you continue this in future. Many people will be benefited from your writing.
    Cheers!

    Feel free to visit my web-site avon online store Shopping

  13. Greetings from California! I’m bored to tears at work so I decided to check out your site on my iphone
    during lunch break. I love the info you present here and
    can’t wait to take a look when I get home.
    I’m amazed at how fast your blog loaded on my phone .. I’m not
    even using WIFI, just 3G .. Anyhow, amazing blog!

  14. Brucetoush表示:

    Many thanks, I appreciate this!
    online drugstore pharmacy pain meds online without doctor prescription canada pharmacies without script

  15. ConradMed表示:

    Система баллов в казино Champion В нашем онлайн казино можно заработать баллы. Это своего вида система лояльности пользователей. Практически за каждые действия, включая даже проигранные ставки, на специальный счет начисляются баллы. Впоследствии, при достижении определенной цифры, их можно обменять на реальные деньги, которые сразу попадут на основной счет. Курс обмена напрямую зависит от уровня пользователя, чем выше, тем выгоднее менять баллы на деньги. Champion — официальный сайт, обзор бк – https://online-vulcan-casino.ru
    Заключение о ставках в конторе ??????? В ??????? самое большое количество рынков и исходов, здесь не заскучает даже самый прошаренный беттор. К тому же контора проводит различные акции и дарит подарки своим игрокам. Подпишитесь на официальную рассылку от бк ???????, чтобы не пропускать все новости спорта и топовые ставки. Букмекер оповещает о самых крутых и популярных матчей. Здесь есть специальные функции для более удобной игры, например ставка в один клик, ставка в кредит, досрочная выплата и многие другие. Кроме того, ??????? предлагает свои игрокам Фрибеты, бесплатные ставки. ??????? довольно молодой букмекер, который успел завоевать внимание у своих беттеров, контору любят за бонусную программу, своевременные выплаты и большое количество хороших отзывов. На сайте рейтинга букмекеров, из 5 возможных баллов, пользователи оценивают ??????? на 4 , это хороший показатель, учитывая, что контора находится на игровом рынке только 8 лет. ??????? один из немногих Букмекерских контор, который дает гарантии свои игрокам потому что в Швейцарском банке у БК заморожено 1 000 000 евро, на случай больших выигрышей. Отзывы о букмекерской конторе ??????? в большинстве своем положительные, игроки хвалят хорошую линию, особенно в футболе. Участники довольны технической поддержкой на сайте и помощью операторов колл-центра ???????. Новички, только что пришедшие в бк , говорят о том, что ??????? лучшая контора, для тех, кто только начинает разбираться в ставках и спорте и опять же хвалят помощников на сайте, которые отвечают на любой вопрос быстро. Игроки, которые отвечали на вопросы о качестве букмекерской конторы выделяют следующие плюсы: Вежливая служба поддержки с мгновенными ответами Очень быстрая регистрация, за которую БК дает вознограждение Большой выбор событий Несколько способов обхода блокировки сайта ( более 8) Моментальные выплаты без процентов и комиссий Новые бонусы каждый месяц и программа лояльности Можно делать ставки на покер и разнообразные компьютерные игры Приложения на современные гаджеты, включая планшеты и ноутбуки
    Особенности и достоинства казино ???????.

發佈留言

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