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,480,180 Responses

  1. BrandenSlomy表示:

    can you buy prednisone in canada: prednisoneraypharm – prednisone for sale without a prescription

  2. вывод из запоя воронеж [url=www.klin.0pk.me/viewtopic.php?id=4409/]www.klin.0pk.me/viewtopic.php?id=4409/[/url] .

  3. Markdob表示:

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

  4. Nikefut表示:

    tor markets 2024 dark website tor markets 2024

  5. выведение из запоя воронеж стационар https://klin.0pk.me/viewtopic.php?id=4409 .

  6. Medicine prescribing information. Long-Term Effects.
    get generic kamagra online
    Best what you want to know about meds. Read here.

  7. AlbertDuM表示:

    stromectol order online: cheapest Ivermectin – can you buy stromectol over the counter

  8. Markdob表示:

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

  9. OP表示:

    Sensual Massage OP

  10. выведение из запоя воронеж стационар motik13.0pk.me/viewtopic.php?id=2001 .

  11. Thanks for sharing your info. I really appreciate your
    efforts and I am waiting for your further post thank
    you once again. http://Yvesreecht.net/forum/profile.php?id=44655

  12. Howdy just wanted to give you a quick heads up and let you know a few of the images aren’t loading
    properly. I’m not sure why but I think its a linking issue.
    I’ve tried it in two different internet browsers and both show the same outcome.

  13. Wonderful beat ! I wish to apprentice whilst you amend your website, how can i subscribe for a weblog website?
    The account helped me a applicable deal. I
    were a little bit familiar of this your broadcast provided brilliant clear concept

  14. Your means of describing all in this article is
    in fact pleasant, every one can simply know it, Thanks a
    lot https://www.transportrbeaudet.ca/fr/ocre-ferreux

  15. Hiram Keating, De Soto, Texas, Mrs.

  16. The population density was 294 people per square mile (114 people/km2), and there were 70,616 housing items.

  17. вывод из запоя стационар [url=http://krasnogorsk.anihub.me/viewtopic.php?id=2573]вывод из запоя стационар [/url] .

發佈留言

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