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,364,465 Responses

  1. Michaeltwisk表示:

    Какое симпатичное сообщение
    Для активации вам просто надлежит навести курсор мыши на все гаджет и нажать на мостбет зеркало рабочее сегодня на слово «демо».

  2. HiOP表示:

    Whiskey Bar HiOP

  3. Здесь можно сейфы домашние москва сейф домой

  4. SamuelBix表示:

    where can i buy clomid pills: clomid on pharm – how can i get generic clomid without dr prescription

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

  6. DanielAbice表示:

    http://cipharmdelivery.com/# purchase cipro

  7. SamuelBix表示:

    cipro pharmacy: cipro online no prescription in the usa – ciprofloxacin generic price

  8. What’s Happening i am new to this, I stumbled upon this I have
    found It positively useful and it has helped me out loads.
    I’m hoping to contribute & aid other users like its aided me.
    Good job.

  9. Link exchange is nothing else but it is just
    placing the other person’s website link on your page at
    appropriate place and other person will also do same in favor of you.

  10. Nikefut表示:

    dark markets 2024 dark website darkmarket url

  11. Highly energetic post, I loved that a lot.
    Will there be a part 2?

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

  13. Way cool! Some very valid points! I appreciate you writing this post and the rest of the website is really good.

  14. Chad Hampton表示:

    Seriously consider giving them chance next time plan visit as memories created cannot be replicated elsewhere !   desert safari dubai

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

  16. SamuelBix表示:

    prednisone 40 mg price: prednisone 0.5 mg – buy prednisone from india

  17. Eleanor Ray表示:

    The size options of nang delivery Melbourne make them perfect for any occasion

  18. Lula Garrett表示:

    I surprise if there are any health-awake recipes that make the most of cream chargers safely? nang canisters

  19. Mac Repair in Allendale
    Mac Repair in Alpine
    Mac Repair in Bayonne
    Mac Repair in Belleville
    Mac Repair in Bergenfield
    Mac Repair in Bloomfield
    Mac Repair in Bogota
    Mac Repair in Caldwell
    Mac Repair in Carlstadt
    Mac Repair in Cedar Grove
    Mac Repair in Computer Repair

  20. DanielAbice表示:

    https://prednibest.com/# buy prednisone online usa

  21. zeroken.jp表示:

    Knowing Easy Methods To Win At Casino Slots –
    Casino Slot Machine Tips 에볼루션 시간차
    배팅 – zeroken.jp

  22. SamuelBix表示:

    buy cipro online canada: CiPharmDelivery – cipro

發佈留言

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