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,245,024 Responses

  1. StevenNub表示:

    where buy clomid without a prescription: clomid rex pharm – can you buy generic clomid pills

  2. StevenNub表示:

    buy clomid without prescription: rexpharm – can i order cheap clomid no prescription

  3. This site was… how do I say it? Relevant!!
    Finally I have found something that helped me.
    Thanks!

  4. pemeton hk表示:

    I just could not leave your website prior to suggesting that I extremely
    loved the standard info a person provide on your guests?
    Is going to be again continuously in order to inspect new posts

  5. EdgarPeway表示:

    Here’s a piece I found quite compelling https://forum.resmihat.kz/viewtopic.php?f=10&t=2345874

  6. RafaelAdowl表示:

    Когда я впервые открыл этот мир, чувство было таким, будто я нашёл что-то особенное. Здесь каждый спин — это не просто азарт, а эмоция, которую ты проживаешь с каждым кликом.

    Оформление создан для комфорта, словно ветер судьбы направляет тебя от игры к игре. Финансовые движения, будь то пополнения или вывод средств, проходят легко, как поток воды, и это удивляет. А техподдержка всегда рядом, как верный помощник, который никогда не подведёт.

    Для меня Селектор стал пространством, где азарт и искусство соединяются. Здесь каждый момент — это часть пути, которую хочется писать снова и снова.

  7. WengToto表示:

    Wonderful blog yοu have here but I was curious aboutt
    if ʏou knew of any message boards that cover thе same ttopics discussed herе?

    I’d reaⅼly love to bе ɑ pаrt oof grօսp ᴡһere
    I сɑn get feed-ƅack ffrom other experienced ppeople tһat share the samе interest.
    If you have ɑny suggestions, ρlease let me ҝnoᴡ.
    Tһanks!

    Also visit my site :: WengToto

  8. The Most Common Mistakes People Make With Mid Cabin Bed mid rise
    cabin bed (https://mozillabd.science)

  9. Markdob表示:

    Всем привет! Подскажите, где почитатьразные статьи о недвижимости? Сейчас читаю – https://deutz-parts.ru

  10. Markdob表示:

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

  11. Dereketerm表示:

    buying generic clomid no prescription: clomid purchase online rex pharm – clomid brand name

  12. Markdob表示:

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

  13. Dereketerm表示:

    amoxicillin 500: amoxil – order amoxicillin online

  14. I’m excited to uncover this site. I wanted to thank you for your time due to
    this wonderful read!! I definitely savored every bit of it and I have you book-marked to
    look at new stuff on your site.

  15. BrandenSlomy表示:

    cheap priligy: buy dapoxetine online – dapoxetine online

  16. BrandenSlomy表示:

    priligy maxpharm: cheap priligy – buy priligy

  17. Markdob表示:

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

  18. Markdob表示:

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

  19. Do you have any video of that? I’d love to find out some additional information.

  20. Very rapidly this web site will be famous among all blogging and
    site-building viewers, due to it’s fastidious posts

    my blog :: What Happens to Your Body When You Cycle Every Day

  21. I got this web page from my pal who shared with me concerning this website and at the moment this time I am
    browsing this web page and reading very informative articles or
    reviews at this place.

  22. Dereketerm表示:

    dapoxetine price: dapoxetine price – buy priligy max pharm

發佈留言

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