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

855,976 Responses

  1. 18 wheeler表示:

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

  2. JamesNow表示:

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

  3. JamesNow表示:

    Kamagra tablets: kamagra pills – super kamagra

  4. JamesNow表示:

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

  5. CharlesDog表示:

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

  6. sange表示:

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

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

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

  8. GeorgeSep表示:

    over the counter sildenafil: Viagra tablet online – sildenafil online

  9. TylerPhona表示:

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

  10. TylerPhona表示:

    https://cialist.pro/# Cheap Cialis

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

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

  13. ElmerWes表示:

    Kamagra tablets sildenafil oral jelly 100mg kamagra buy Kamagra

  14. JamesNow表示:

    Buy Tadalafil 20mg: cialist.pro – Tadalafil price

  15. GeorgeSep表示:

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

  16. CharlesDog表示:

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

發佈留言

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