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

911,160 Responses

  1. Alvinimave表示:

    You stated this really well.
    paying college athletes essay https://essaywriting4you.com/ write my lab report

  2. Rfukku表示:

    cost avapro purchase nortriptyline for sale purchase pepcid generic

  3. Juliane表示:

    Unquestionably believe that which you said. Your favorite justification appeared to
    be on the net the easiest thing to be aware of. I say to you, I definitely get
    annoyed while people consider worries that they plainly do not know about.
    You managed to hit the nail upon the top as well as defined out the whole thing without
    having side effect , people can take a signal.
    Will likely be back to get more. Thanks

  4. With havin so much content and articles do you ever run into any issues of plagorism or copyright
    infringement? My site has a lot of completely unique content I’ve either created myself or
    outsourced but it seems a lot of it is popping it up all
    over the internet without my agreement. Do you know any solutions to help prevent content from being stolen? I’d truly appreciate it.

  5. Hello There. I found your blog using msn. That is a really smartly written article.
    I will be sure to bookmark it and come back to learn extra of your
    helpful information. Thanks for the post. I will certainly return.

  6. Andy表示:

    Hi! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my blog to rank for some targeted
    keywords but I’m not seeing very good results.

    If you know of any please share. Many thanks!

  7. item463756222表示:

    THC isolate: THC isolate is the pure form of THC.

    Also visit my site: item463756222

  8. Excellent items from you, man. I’ve be mindful your stuff previous to and
    you are simply extremely great. I really like what you’ve bought here, really like what you’re saying and the way in which through which you assert it.
    You’re making it entertaining and you continue
    to take care of to stay it sensible. I can not wait
    to read much more from you. That is actually a tremendous
    web site.

  9. cbd Bangor表示:

    %%

    my homepage – cbd Bangor

  10. Larue表示:

    %%

    Here is my blog post windows repair (Larue)

  11. Nba Games表示:

    Russell died Sunday at the age of 88, with his wife, Jeannine,
    at his side, his family members stated in a statement
    posted on social media.

    my website Nba Games

  12. Haroldpew表示:

    black market sites 2022 tor top websites

  13. Haroldpew表示:

    new darknet marketplaces asap market url

  14. homepage表示:

    If you are going for best contents like me, simply pay a quick visit thbis
    site everyday since it gives quality contents, thanks
    homepage

  15. Calvindit表示:

    canadian drug pharmacy canadian pharmacies that deliver to the us

  16. free Money表示:

    I am genuinely grateful to the owner of this web site who has shared this wonderful paragraph
    at at this time.

    Also visit my web-site :: free Money

  17. Ronaldbrege表示:

    buy drugs online darknet darknet drug links

  18. Diegororie表示:

    Champion casino промокод на второй, третий и седьмой депозит После активации бонуса на первый депозит, champion casino промокод позволяет получить бонус на второе, третье и седьмое пополнение игрового счета. Принцип действия вознаграждения аналогичен предыдущей акции, а вот условия немного отличаются. Второй депозит Третий депозит Седьмой депозит Процент бонуса 75% 75% 200% Максимальная сумма ?20 000 ?30 000 ?40 000 Депозит для активации ?500 ?500 ?500 Вейджер отыгрыша х44 х40 х77 Как можно заметить, на последующие депозиты максимальный лимит вознаграждения увеличивается, также меняется процент бонуса и вейджер отыгрыша. Рассмотрим принцип действия поощрения на примере, в котором игрок будет пополнять счет на одну сумму — ?30 000. Второй депозит. При повторном пополнении счета процент бонуса на депозит будет снижен до 75, а максимальный лимит вознаграждения остается тем же. Производим расчет: ?30 000 х 75% = ?22 500 Поскольку максимальный бонус за второй депозит составляет ?20 000, суммарно игрок получает ?50 000 для игры на сайте Champion casino. Третий депозит. С третьим депозитом ситуация интереснее, поскольку в данном случае онлайн-казино ??????? поднимает планку максимального бонуса. При пополнении счета на те же ?30 000 игрок получает свои заслуженные ?22 500 в качестве вознаграждения (75% от депозита) и в сумме может сыграть на ?52 500. Седьмой депозит. Бонус на седьмой депозит самый щедрый – 200% до ?40 000. Добавляем к этому приобретенный опыт и вот она, возможность получить самые легкие деньги! Для получения максимального вознаграждения игроку достаточно пополнить счет на меньшую сумму, нежели в предыдущих примерах – например, на ?20 000: ?20 000 х 200% = ?40 000 В результате активации акции суммарно игрок получит ?60 000 для ставок на площадке. Партнерская программа ??????? partners champion зеркало сегодня
    ??????? зеркало: рабочая версия Найти Champion зеркало возможно по поисковому запросу в интернете. Зеркала могут обновляться ежедневно. Нет смысла запоминать адреса резервных сайтов. Зеркало ??????? имеет те же функции, что и основной ресурс.
    ??????? Gold 50 FS в Book of Ra за депозит от 500 RUB + 50% за депозит от 1 000 RUB + 75 FS в Lucky Lady’s Sharm за депозит от 3 000 RUB

  19. %%

    Feel free to surf to my blog: Sweets Edibles

發佈留言

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