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,234,126 Responses

  1. HassanbuifS表示:

    https://matadorbet.bid/# matadorbet.bid
    deneme bonusu veren siteler yeni

  2. You’ll Be Unable To Guess Filter Coffe Machine’s Tricks Filter coffe Machine

  3. kontol表示:

    I’ve been browsing online more than 4 hours today, yet I never found any interesting article like yours.
    It is pretty worth enough for me. In my opinion, if all webmasters and
    bloggers made good content as you did, the web will be much more useful than ever before.

  4. Derekfar表示:

    deneme bonusu veren siteler 2024: deneme bonusu veren siteler – deneme bonusu veren siteler yeni

  5. Lanora表示:

    The 10 Most Scariest Things About Truck Accident Attorneys truck accident attorneys (Lanora)

  6. Here’s what is battery reconditioning (http://www.basee6.com)’s In the EZ Battery Refurbishing ™ Program.You’ll be
    able to use our step-by-step overviews that will show you how to replace almost
    every kind of battery available.

  7. CarrollUnton表示:

    denemebonusuverensiteler.top https://casinositeleri.win/# Casino Siteleri

  8. I’m not that much of a online reader to be honest
    but your blogs really nice, keep it up! I’ll go ahead and
    bookmark your website to come back down the road. Many thanks

  9. HassanbuifS表示:

    https://ultrabet-tr.online/# ultrabet yeni giris 1125
    deneme bonusu veren siteler betturkey

  10. CarrollUnton表示:

    deneme bonusu veren siteler http://slot-tr.online/# slot oyunlar? puf noktalar?

  11. lgo ace表示:

    Hi, I do believe this is a great site. I stumbledupon it
    😉 I am going to return yet again since i have book-marked
    it. Money and freedom is the greatest way to change, may you be
    rich and continue to guide others.

  12. LarryCoell表示:

    deneme bonusu veren siteler denemebonusuverensiteler.top deneme bonusu veren siteler betturkey betturkey.com

  13. You actually said that terrifically.

  14. Derekfar表示:

    deneme bonusu veren siteler yeni: deneme bonusu veren siteler – deneme bonusu veren siteler yerliarama.org

  15. Medicament information for patients. What side effects?
    triamterene hydrochlorothiazide 37 5 25 mg daily
    Everything information about drug. Get now.

  16. I believe this is among the such a lot important information for me.
    And i am satisfied studying your article.
    However wanna observation on few general things, The website taste is ideal, the articles is
    actually nice : D. Good task, cheers

  17. Howdy just wanted to give you a quick heads up and let you know
    a few of the images aren’t loading correctly. I’m
    not sure why but I think its a linking issue.
    I’ve tried it in two different browsers and both show the same results.

    https://w3.datalaos.net/

  18. сервис для накрутки подписчиков в инстаграме сервис для накрутки подписчиков в инстаграме .

  19. Тут можно преобрести оружейные сейфы для охотничьего ружья сейф для оружия цена

  20. CarrollUnton表示:

    deneme bonusu veren siteler betturkey https://matadorbet.bid/# matadorbet.bid

  21. ClydePab表示:

    ultrabet giris: ultrabet yeni giris 1125 – ultrabet giris

  22. сервис для накрутки подписчиков в группу вконтакте сервис для накрутки подписчиков в группу вконтакте .

  23. Lorrie Dion表示:

    CBD oil has gained popularity in recent years for its potential health benefits. Sweet Aura CBD is one of the leading brands in the market, known for its high-quality CBD products.

  24. StuartTug表示:

    Роман Василенко сделал невероятное — он помог нам, простым людям, получить жильё без кредитного рабства. Столько лет я мечтал о собственных квадратных метрах, но в банке мне только и предлагали брать кредиты на неподъёмных условиях. А с «Бест Вей» я смог накопить на жильё без кабальных долгов! Благодаря Василенко у нас появилась настоящая альтернатива, которая просто не могла бы существовать без его инициативы. Это не просто кооператив, это система поддержки и помощи. Я не понимаю, почему вместо того, чтобы поддерживать такие проекты, их пытаются уничтожить. Пусть всем будет ясно: пока у нас есть такие лидеры, как Роман, мы не остановимся в борьбе за своё жильё!

發佈留言

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