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,374,537 Responses

  1. 9 . What Your Parents Taught You About Realisticsexdolls realisticsexdolls

  2. Luis Terry表示:

    Having clear timelines during project execution helps alleviate stress levels significantly—you explained this perfectly!!! Learn project management tips: %%your site link%% @ ###yourwebsite new roof installation

  3. Can’t trust how convenient it’s to order from Nangs Delivery Melbourne ! Nang delivery has never been this primary

  4. Здесь можно купит сейф для дома домашние сейфы

  5. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов honor цены, можете посмотреть на сайте: ремонт телефонов honor адреса
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  6. SamuelBix表示:

    buy prednisone 10 mg: Predni Best – can i purchase prednisone without a prescription

  7. проектная организация москва перепланировка квартиры проектная организация москва перепланировка квартиры .

  8. Ich finde, dass dieser Artikel eine Menge wertvoller
    Informationen bietet.
    Vielen Dank für diesen großartigen Beitrag!

  9. где купить поролон для матраса где купить поролон для матраса .

  10. мосжилинспекция проект перепланировки http://zakazat-proekt-pereplanirovki-kvartiry11.ru .

  11. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали ремонт телефонов infinix, можете посмотреть на сайте: ремонт телефонов infinix
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  12. Travis Brooks表示:

    Mac Repair Union City
    MacBook Repair Union City
    Apple Repair Union City
    Mac Computer Repair Union City
    Union City MacBook Screen Repair
    MacBook Battery Replacement Union City
    Apple Laptop Repair Union City NJ
    MacBook Keyboard Repair Union City
    Union City https://www.empowher.com/user/4411649

  13. KennethPah表示:

    buy cipro online usa buy cipro without rx ciprofloxacin

  14. itkvariat.com表示:

    12 Companies Leading The Way In Key Repair Near Me car key repair near me (itkvariat.com)

  15. MiguelUnind表示:

    http://prednibest.com/# buy prednisone online without a script

  16. SamuelBix表示:

    antibiotics cipro: ci pharm delivery – buy cipro online without prescription

  17. KennethPah表示:

    how to buy generic clomid for sale get generic clomid no prescription clomid without a prescription

  18. go to my site表示:

    Hurrah! In the end I got a webpage from where I be capable of
    really obtain useful data concerning my study and knowledge.

  19. check my site表示:

    Hello there, just became aware of your blog through Google, and found that it is truly informative.

    I am going to watch out for brussels. I’ll appreciate if you
    continue this in future. Numerous people will be benefited from your writing.
    Cheers!

  20. transponder表示:

    Ten Things You Need To Know About Land Rover
    Replacement Keys transponder

  21. The Huge Winning Opportunities On Bet Fair
    Exchange Games 토토 에볼루션

發佈留言

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