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,144 Responses

  1. Everyone loves what you guys tend to be up too.
    This sort of clever work and coverage! Keep up the excellent works
    guys I’ve incorporated you guys to my personal blogroll.

    https://livetaipei2.ambarita.org/

  2. Kennethacite表示:

    Find medication information. Drug info here.
    valtrex cheap
    Medicine facts provided. Drug guide available.

  3. Nikefut表示:

    tor market url darkmarket list darknet market links

  4. My spouse and I stumbled over here coming from a different
    page and thought I may as well check things
    out. I like what I see so now i’m following you. Look forward to exploring your web page again.

  5. Meds information for patients. Long-Term Effects.
    how can i get generic zocor prices
    Everything news about medication. Read here.

  6. BrandenSlomy表示:

    where to buy amoxicillin: amoxil – amoxicillin 200 mg tablet

  7. Drug information. Effects of Drug Abuse.
    can you buy cafergot without a prescription?
    Actual information about meds. Read information here.

  8. Cheers! An abundance of knowledge!

  9. Markdob表示:

    Всем привет! Может кто знает, где найтиразные статьи о недвижимости? Пока нашел – https://tolmi74.ru

  10. Markdob表示:

    Приветствую. Может кто знает, где найтиполезные статьи о недвижимости? Пока нашел – https://tolmi74.ru

  11. AlbertDuM表示:

    ivermectin tablet price: generic ivermectin cream – order minocycline 100mg

  12. Boardgame表示:

    This is a very good tip particularly to those new to the blogosphere.
    Brief but very accurate information… Thank you
    for sharing this one. A must read post!

  13. BernardMop表示:

    antiplatelet drug cheapest plavix antiplatelet drug

  14. Markdob表示:

    Всем привет! Подскажите, где найтиполезные статьи о недвижимости? Пока нашел – https://tolmi74.ru

  15. BrandenSlomy表示:

    priligy max pharm: max pharm – priligy maxpharm

  16. AlbertDuM表示:

    buy cytotec over the counter: cyt premium – buy misoprostol over the counter

  17. Hi it’s me, I am also visiting this site daily, this website is truly pleasant and the
    visitors are truly sharing nice thoughts.

    Feel free to visit my web blog senior assisted living

  18. Markdob表示:

    Всем привет! Может кто знает, где почитатьполезные блоги о недвижимости? Пока нашел – https://tolmi74.ru

  19. Markdob表示:

    Приветствую. Подскажите, где найтиполезные блоги о недвижимости? Сейчас читаю – https://tolmi74.ru

發佈留言

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