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...

908,660 Responses

  1. GeorgeSep表示:

    buy viagra here: viagras.online – viagra without prescription

  2. What Is Best SEO Agency And Why Is Everyone Dissing It?
    Best Seo Agency In London

  3. ElmerWes表示:

    Purchase Cenforce Online Purchase Cenforce Online order cenforce

  4. JamesNow表示:

    Buy Vardenafil online: Levitra 20 mg for sale – Levitra online pharmacy

  5. Five Killer Quora Answers To Link Daftar Gotogel link Daftar Gotogel

  6. ElmerWes表示:

    Cialis over the counter Cialis 20mg price Buy Tadalafil 5mg

  7. Upvc repairs表示:

    The Unspoken Secrets Of Window Repair Near Upvc repairs

  8. CharlesDog表示:

    http://levitrav.store/# Levitra 10 mg best price

  9. CharlesDog表示:

    http://viagras.online/# Sildenafil 100mg price

  10. CharlesDog表示:

    http://viagras.online/# Viagra generic over the counter

  11. Are You Getting The Most Of Your Used Couches For Sale? sofa Warehouse sale

  12. CharlesDog表示:

    https://levitrav.store/# п»їLevitra price

  13. porno表示:

    Thanks for sharing your thoughts on porno. Regards

  14. You said it perfectly.!

  15. 18 wheeler表示:

    Guide To 18 Wheeler Accident Attorneys: The Intermediate
    Guide Towards 18 Wheeler Accident Attorneys 18 wheeler

  16. JamesNow表示:

    order viagra: Viagra generic over the counter – Generic Viagra for sale

  17. JamesNow表示:

    Kamagra tablets: kamagra pills – super kamagra

  18. JamesNow表示:

    Levitra online pharmacy: Buy generic Levitra online – Cheap Levitra online

  19. CharlesDog表示:

    https://cialist.pro/# Buy Cialis online

  20. sange表示:

    What a information of un-ambiguity and preserveness of valuable familiarity about unexpected emotions.

  21. Игральный машина Juicy Fruits Multihold:
    свежеиспечённый степень азарта Juicy Fruits Multihold привлекает внимание своей
    механикой Multihold, которая позволяет
    фиксировать выигрышные комбинации и повышать
    шансы на получение крупных призов.
    Кроме того, здесь представлена яркая и красочная графика, создающая атмосферу настоящего казино.
    Juicy Fruits Multihold привлекает внимание своей механикой Multihold, которая позволяет фиксировать выигрышные комбинации и увеличивать
    шансы на получение крупных призов.
    Кроме того, здесь представлена яркая и красочная графика, создающая атмосферу настоящего
    казино. Juicy Fruits Multihold предлагает игрокам возможность испить новоиспечённый
    уровень азарта и выигрышей.

    Сочные фрукты на барабанах приносят не лишь удовольствие от игры, но
    и шанс на выигрыш крупных денежных
    призов. Для доступа к игровому автомату
    Juicy Fruits Multihold вы можете скачать его на свое устройство.
    Теперь у вас снедать вероятность кайфовать азартом и выигрышами в любое время, даже без доступа к интернету.

  22. GeorgeSep表示:

    over the counter sildenafil: Viagra tablet online – sildenafil online

  23. TylerPhona表示:

    https://kamagra.win/# Kamagra 100mg price

  24. TylerPhona表示:

    https://cialist.pro/# Cheap Cialis

  25. 15 Top Volvo V50 Key Bloggers You Must Follow Volvo replacement key cost

  26. 15 Amazing Facts About Double Glazed Window Repair That You Didn’t Know Window Repairs Near Me

  27. ElmerWes表示:

    Kamagra tablets sildenafil oral jelly 100mg kamagra buy Kamagra

  28. JamesNow表示:

    Buy Tadalafil 20mg: cialist.pro – Tadalafil price

  29. GeorgeSep表示:

    Generic Levitra 20mg: Buy Vardenafil 20mg – Cheap Levitra online

  30. CharlesDog表示:

    http://levitrav.store/# Levitra online USA fast

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

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