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,590,899 Responses

  1. Поэтому, https://doneck-news.com/business-and-motivation/cryptocurrency/247904-kriptoobmennik-coinsbar-obmen-btc-eth-usdt.html всемирная паутина пестрит множеством услуг по обмену и приобретении криптовалюты.

  2. Rodneytus表示:

    dark web drug marketplace dark markets

  3. Hi, I think your blog might be having browser compatibility issues.
    When I look at your blog site in Chrome, it looks fine but when opening
    in Internet Explorer, it has some overlapping. I just wanted to give you a
    quick heads up! Other then that, great blog!

  4. Привет, если вы ищете игровые автоматы, какие вправду приносят большие призы, вы попали как раз адресу! Наша команда подготовили для вас топ-5 игровых автоматов, какие за прошедший месяц сделали наших игроков счастливее. Это все не есть просто речи — данные факты, базирующиеся на реальной статистике вознаграждений.

    Применяйте льготы и фриспины для тестирования свежих игровых автоматов.

    Попробуйте данные слоты на интернет-сайте водка бет бесплатно бонусы 2024 — а, возможно, будущий крупный приз будет вашим!

  5. Diplomi_kept表示:

    купить диплом воспитателя детского сада prema-diploms.ru .

  6. Heya! I just wanted to ask if you ever have
    any problems with hackers? My last blog (wordpress) was hacked and I ended up losing months of hard
    work due to no data backup. Do you have any methods to protect against hackers?

  7. LarryHiz表示:

    Plinko: Plinko casino game – Plinko-game

  8. FloydDaync表示:

    Если вас интересует официальный сайт Сукааа Казино – вся самая актуальная информация размещена на нашем портале. А мы рассмотрим главные преимущества, которые предлагает эта онлайн-площадка Казино Sykaaa официальный сайт

  9. Dwightprugs表示:

    http://plinkodeutsch.com/# Plinko Deutsch

  10. I truly love your website.. Pleasant colors & theme. Did you make
    this web site yourself? Please reply back as I’m planning to create my very own blog
    and want to know where you got this from or what the theme is named.
    Many thanks!

  11. Very quickly this web site will be famous among all blogging viewers, due to it’s fastidious articles

  12. BionHesia表示:

    Many people feel that buying write essays for me is easy.

  13. Link - Elani表示:

    Dragon Tiger is assumed to have originated in the Kingdom of Cambodia and has since grown to casino floors worldwide, particularly in Southeast Asia. The game’s lack of complexity and quick nature have made it a go-to game among both seasoned betters and newcomers. Unlike competing card games that require elaborate strategies and skills, Dragon Tiger relies mostly on luck, making it an attractive choice for those in search of a brief gaming experience. At its core, Dragon Tiger is like traditional baccarat but reduces the wagering process. The game is played with a standard deck of 52 cards, and the goal is to guess which of the two hands—Dragon or Tiger—will have a higher value. Players place their bets before the dealer uncovers the cards. The hand with the more valuable card is the winner, and ties are also attainable, adding an extra layer of interest.

    Direct link: https://www.biographyweb.org/tag/erick-duran-manard/

    Players can set several types of wagers, including betting on the Dragon, the Tiger, or a tie. The financial gain varies depending on the sort of bet placed, with ties typically offering the largest payout due to their rarity. This uncomplicated betting structure makes Dragon Tiger accessible to a wide audience, further contributing to its popularity in online casinos.

  14. Lennyfut表示:

    dark web drug marketplace darknet marketplace

  15. Everything is very open with a very clear clarification of the challenges.

    It was truly informative. Your site is very helpful.

    Thanks for sharing!

  16. Привет, если ты разыскиваете слоты, которые вправду приносят большие выигрыши, вы очутились по куда нужно! Наша команда сделали ради тебя топ-5 игровых автоматов, какие за последний месяц сделали родных участников более радостными. Это все не есть легкие слова — данные факты, базирующиеся в существующей исчислении вознаграждений.

    Используйте льготы и бесплатные вращения для испытания новых игровых автоматов.

    Испытайте данные слоты на интернет-сайте водка бет зеркало бонусы — а, возможно, будущий большой выигрыш станет твоим!

  17. Boycenog表示:

    https://plinkocasinonl.shop/# plinko casino nederland

發佈留言

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