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,238,716 Responses

  1. porno表示:

    Hi there, this weekend is good in favor of me, as this occasion i am reading this
    impressive informative post here at my residence.

  2. Very nice blog post. I definitely love this website.
    Keep writing!

  3. Markdob表示:

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

  4. StevenNub表示:

    where to buy clomid: clomid purchase online rex pharm – can you get clomid without prescription

  5. Тут можно преобрести сейф для оружие шкаф оружейный купить

  6. Uazrats表示:

    Официальная покупка диплома вуза с сокращенной программой в Москве
    200wsolarpanel.com/kupit-attestat-o-srednem-polnom-obshem-obrazovanii.html

  7. BrandenSlomy表示:

    can i buy clomid online: clomid online – how can i get clomid price

  8. Uazraup表示:

    Покупка диплома о среднем полном образовании: как избежать мошенничества?
    tripsister.com/kupit-attestat-ob-okonchanii-11-klassov-v-almati.html

  9. Тут можно преобрести оружейный сейф купить москва купить сейф для ружья в интернет магазине

  10. Узнай все о варикоцеле у мужчин варикоцеле диагностика

  11. Hello there! I simply want to offer you a huge thumbs up for your great information you have got here on this post.
    I will be returning to your blog for more soon.

  12. Тут можно преобрести оружейные сейфы шкафы сейф для оружия цена в москве

  13. Markdob表示:

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

  14. What’s The Job Market For Renault Scenic Key Professionals Like?
    renault Scenic key

  15. Nikefut表示:

    bitcoin dark web dark web search engines black internet

  16. 10 Best American Fridge Freezer Uk Tips All Experts Recommend
    american Fridge Freezer With ice machine

  17. Kathi表示:

    What Is Gas Service Engineer Near Me? History Of Gas Service
    Engineer Near Me In 10 Milestones qualified gas engineer (Kathi)

  18. Markdob表示:

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

  19. Iyannaobesk表示:

    king buffalo
    king buffalo скачать

  20. вызов нарколога на дом круглосуточно вызов нарколога на дом круглосуточно .

  21. Diplomi_yaEa表示:

    можно ли купить аккредитацию можно ли купить аккредитацию .

  22. Very nice post. I just stumbled upon your blog and wished to
    say that I have truly enjoyed surfing around your blog posts.
    After all I’ll be subscribing to your rss feed and I hope you
    write again soon!

  23. Uazrqnd表示:

    Парадокс, но купить диплом кандидата наук оказалось не так и сложно
    lasfloresboutique.ru/kupit-attestat-za-9-klass-v-krivom-roge.html

發佈留言

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