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,479,750 Responses

  1. Isabel Walker表示:

    This is quite enlightening. Check out funeral director for more

  2. Diplomi_ugpt表示:

    купить диплом о среднем проф образовании prema-diploms.ru .

  3. Diplomi_oapt表示:

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

  4. Charlesbot表示:

    http://fastpillseasy.com/# online ed medicine

  5. JuanNutty表示:

    И на чем остановимся?
    Add a credit gemini card offering crypto payment for every purchase, and you will receive a armorywallet.io, a platform designed for seduction needs of the rapidly developing world of finance.

  6. Diplomi_supt表示:

    купить диплом дизайнера интерьера prema-diploms.ru .

  7. Charlesbot表示:

    https://fastpillsformen.com/# cheapest viagra

  8. Fidel表示:

    Aromatherapy: Rosemary Acrylic Profile 오피커뮤니티 (Fidel)

  9. Barrybib表示:

    how to get ed meds online: fast pills easy – buy ed pills

  10. 12 Companies Leading The Way In American-Style Fridge Freezers Integrated American Fridge Freezer Uk

  11. Let me show you in my review of NewULife.

    Here is my webpage :: hvac salary seattle

  12. A black and white symbol of a vacuum cleaning up a pipe.

    my blog hvac contractors seattle

  13. Update your home heating or cooling down today.

    Feel free to visit my homepage; hvac cleaning services near me

  14. Thanks for the clear breakdown. More info at plumbing san francisco bay area

  15. Upgrade your home heating or cooling down today.

    Feel free to visit my homepage … top rated ac companies

  16. 카지노사이트 카지노사이트 카지노사이트 카지노사이트 카지노사이트 카지노사이트 카지노사이트

  17. Update your home heating or cooling down today.

    Here is my webpage air conditioner repair service near me

  18. BrettTIT表示:

    Buy generic 100mg Viagra online: FastPillsForMen – buy Viagra online

  19. Jonas表示:

    The main welcome bonus is a 150% welcome bonus $2,000
    first deposit bonus.

  20. Upgrade your home heating or cooling today.

    Also visit my site … hvac Contractor salary

  21. BrettTIT表示:

    low cost ed medication: fast pills easy – erectile dysfunction pills online

  22. сколько стоит сделать загранпаспорт сколько стоит сделать загранпаспорт .

  23. The Top Companies Not To Be In The Samsung Fridge Uk Industry Refrigerator Of samsung

  24. Stanley Bush表示:

    This kind of knowledge is invaluable Electrician near me

  25. срочное оформление загранпаспорта срочное оформление загранпаспорта .

  26. I like what you guys are up too. Such clever work and exposure!

    Keep up the good works guys I’ve incorporated you guys to our blogroll.

發佈留言

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