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,199 Responses

  1. Diplomi_ypkn表示:

    где можно купить настоящий диплом где можно купить настоящий диплом .

  2. Diplomi_pbMl表示:

    купить аттестат в омске many-diplom77.ru .

  3. Diplomi_ovMl表示:

    купить диплом в улан удэ many-diplom77.ru .

  4. Diplomi_pvkn表示:

    купить диплом вуза ссср в кемерово 1russa-diploms.ru .

  5. Thanks for the auspicious writeup. It in truth used
    to be a entertainment account it. Look complicated to far brought agreeable from you!
    However, how can we keep in touch?

  6. Quality articles is the key to invite the viewers to visit the web page, that’s
    what this web site is providing.

  7. Derekfar表示:

    matadorbet: matadorbet – matadorbet.bid

  8. Diplomi_nuMl表示:

    диплом азбуку прочел купить many-diplom77.ru .

  9. Somebody essentially lend a hand to make significantly articles I’d state.
    That is the first time I frequented your web page
    and thus far? I surprised with the analysis you made to create this actual put
    up incredible. Fantastic job!

    Take a look at my web page คาสิโนออนไลน์ไม่ผ่านเอเย่นต์

  10. Тут можно преобрести сейф для оружия от производителя сейф для хранения оружия

  11. Wallace表示:

    15 Best Mystery Boxes Bloggers You Need To Follow best mystery
    boxes (Wallace)

  12. Electric Fireplace Wall Mounted: It’s Not As Difficult As You Think electric Fireplaces Wall mounted

  13. Тут можно преобрести сейфы под оружие сейфов для оружия

  14. CarrollUnton表示:

    deneme bonusu veren siteler denemebonusu2026.com https://matadorbet.bid/# matadorbet bid

  15. Тут можно преобрести где купить сейф для оружия купить оружейный сейф доставка

  16. fuck at mall表示:

    You’re so interesting! I don’t suppose I’ve read anything like that before.

    So wonderful to discover another person with a few original thoughts on this subject matter.
    Really.. thank you for starting this up. This web site is something that’s needed on the internet, someone with some originality!

  17. Garry表示:

    When I initially commented I clicked the “Notify me when new comments are added” checkbox
    and now each time a comment is added I get several e-mails with the same comment.
    Is there any way you can remove people from that service?
    Thank you!

  18. You’ll Never Be Able To Figure Out This Window Friction Hinges’s Tricks window friction hinges

  19. To do this, the applicant must register a deed of trust and name the bonding agency as
    beneficiary.

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

  21. Buzzwords De-Buzzed: 10 Other Ways Of Saying Wall Electric Fireplace wall mount for
    Electric fireplace [jackd689wsn7.wikigop.Com]

  22. Medication information for patients. Effects of Drug Abuse.
    buying generic xenical price
    Some trends of medication. Get information here.

  23. FloydFrona表示:

    Огромное разочарование вызывает то, как «Бест Вей» превращают в козла отпущения. Кооператив работал годами, помогая обычным людям получить жилье, и вдруг кто-то решил, что нас нужно лишить этой возможности. Мы, пайщики, были частью этого большого сообщества, и теперь нас оставили без защиты, заморозив счета и заблокировав доступ к нашим же средствам. Что это, если не откровенный грабеж? Если у правоохранителей есть желание найти мошенников, пусть ищут среди тех, кто ведет кампанию против нас, а не среди тех, кто доверил кооперативу свои средства. Мы не сдадимся и будем бороться за свое право на жилье!

  24. ClydePab表示:

    slot siteleri: en cok kazand?ran slot oyunlar? – az parayla cok kazandiran slot oyunlar?

  25. LarryCoell表示:

    matadorbet giris matadorbet bid matadorbet.bid

  26. LarryCoell表示:

    deneme bonusu veren siteler yeni deneme bonusu veren siteler mycbet.com denemebonusuverensiteler.top

  27. Derekfar表示:

    en cok kazand?ran slot oyunlar?: slot siteleri – slot oyunlar?

  28. Derekfar表示:

    matadorbet.bid: matadorbet.bid – matadorbet.bid

  29. The Three Greatest Moments In Item Upgrades History Item Upgrader mod

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

發佈留言

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