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,476,443 Responses

  1. Roof restoration definitely brings in a variation in property value! Thanks for highlighting its own importance. Figure out even more at reroofing perth

  2. mau777表示:

    Everything is very open with a really clear description of the challenges.
    It was truly informative. Your site is extremely helpful.
    Thanks for sharing!

  3. Sean Hunter表示:

    The schools in Scottsdale are highly rated, making it a desirable place for families looking for homes! Get more insights at home sales paradise valley az

  4. Donaldabula表示:

    Tadalafil Tablet Generic Cialis without a doctor prescription Buy Tadalafil 10mg

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

  6. скорая наркологическая помощь на дому в москве http://www.klin.0pk.me/viewtopic.php?id=4428 .

  7. Charlesbot表示:

    http://fastpillseasy.com/# where can i get ed pills

  8. срочное изготовление загранпаспорта срочное изготовление загранпаспорта .

  9. BrettTIT表示:

    Cialis 20mg price in USA: Cialis without a doctor prescription – Cialis over the counter

  10. Donaldabula表示:

    Sildenafil Citrate Tablets 100mg Fast Pills For Men cheap viagra

  11. Is anyone else overwhelmed by the amount of junk that builds up over time? I’ve begun a monthly junk elimination routine to stay on top of it! For those wanting to obtain organized junk removal

  12. наркологическая скорая помощь москва [url=www.vishivayu.ukrbb.net/viewtopic.php?f=12&t=13503]www.vishivayu.ukrbb.net/viewtopic.php?f=12&t=13503[/url] .

  13. Estelle Parks表示:

    If you haven’t tried pressure washing yet Pressure Washing North York

  14. 5 Laws That Will Help The Search Engine Optimisation Company Industry saas Content marketing Company

  15. The Top Five Tips To Be Aware The Difference Between Online
    And Live Poker 닌자거북이 에볼루션 다시보기

  16. Donaldabula表示:

    what is the cheapest ed medication FastPillsEasy online ed pharmacy

  17. Clifford表示:

    Guide To Locksmith Near Me Affordable: The Intermediate Guide The Steps To Locksmith Near Me Affordable locksmith near me affordable – Clifford,

  18. Barrybib表示:

    Buy Cialis online: buy cialis online – cheapest cialis

  19. Nell Hanson表示:

    I’ve been living in Puyallup for a while now, and finding a reliable chiropractor has been a game-changer for my health. It’s amazing how much better I feel after regular adjustments https://list.ly/joyceywtjk

  20. Donaldabula表示:

    Generic Viagra online Fast Pills For Men Viagra online price

  21. bet go表示:

    My family members every time say that I am killing my time here at net, but
    I know I am getting knowledge daily by reading such pleasant
    posts.

發佈留言

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