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,628,645 Responses

  1. BrettTIT表示:

    cheap boner pills: FastPillsEasy – order ed pills

  2. BrettTIT表示:

    over the counter sildenafil: FastPillsForMen.com – Cheap generic Viagra online

  3. какой процессор лучше http://www.topcpu.ru .

  4. вывод из запоя на дому ростов цены вывод из запоя на дому ростов цены .

  5. Sweet blog! I found it while browsing on Yahoo News. Do you have any tips on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!
    Cheers

  6. рейтинги процессоров для пк http://www.topcpu.ru/ .

  7. сравнение процессоров amd topcpu.ru .

  8. Bertie Silva表示:

    Thanks for the useful post. More like this at outdoor lighting contractor

  9. Charlesbot表示:

    http://fastpillseasy.com/# order ed pills online

  10. Charlesbot表示:

    http://fastpillsformen.com/# Cheap generic Viagra online

  11. Donaldabula表示:

    Buy Tadalafil 5mg buy cialis online Cialis 20mg price in USA

  12. This was nicely structured. Discover more at frenzy travel agency

  13. какой процессор лучше http://topcpu.ru/ .

  14. WilliamDon表示:

    Мир Смартфонов. Новости и обзоры. Анонсы новинок. Продажа смартфонов и планшетов. formobile.top
    https://formobile.top/ – топ смартфонов бюджетных

  15. Donaldabula表示:

    Viagra online price over the counter sildenafil Cheap Sildenafil 100mg

  16. рейтинг игровых процессоров topcpu.ru .

  17. Donaldabula表示:

    Cheap Cialis Generic Cialis without a doctor prescription Buy Cialis online

  18. WilliamDon表示:

    Мир Смартфонов. Новости и обзоры. Анонсы новинок. Продажа смартфонов и планшетов. formobile.top
    https://formobile.top/ – топ смартфонов бюджетных

  19. Charlesbot表示:

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

  20. best seo Tool表示:

    SEO Tools Explained In Fewer Than 140 Characters best seo Tool

  21. Few Important Points Don’t Forget When Selecting Wedding Function Venues 하이오피사이트

發佈回覆給「Charlesbot」的留言 取消回覆

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