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,266,241 Responses

  1. CurtisIncix表示:

    пинап казино: pinup-kazi.kz – пин ап кз

  2. Unquestionably imagine that that you said. Your favorite justification seemed to be
    on the internet the easiest factor to understand of. I
    say to you, I certainly get irked at the same time as folks consider worries that they
    just do not realize about. You managed to hit the
    nail upon the top and also outlined out the entire thing with
    no need side-effects , other folks can take a signal.
    Will likely be again to get more. Thank you

  3. AngelCroft表示:

    предметная фотосъемка москва – Создание качественных фото для каталогов и онлайн-платформ, включая крупные маркетплейсы.

  4. OLaneevige表示:

    Howdy! I realize this is sort of off-topic however I needed to ask. Does operating a well-established blog like yours require a large amount of work? I am completely new to operating a blog but I do write in my diary everyday. I’d like to start a blog so I will be able to share my experience and feelings online. Please let me know if you have any suggestions or tips for new aspiring blog owners. Thankyou!

    https://gazaskygeeks.com/art/1xbet_promo_code_vip_bonus_offer.html

  5. You can certainly see your expertise within the article you write.

    The sector hopes for more passionate writers like you who are not afraid to
    mention how they believe. At all times go after
    your heart.

  6. It’s very easy to find out any topic on net as compared to
    textbooks, as I found this paragraph at this website.

  7. Old.reddit.com/r/gaming/comments/1gykr5y/legally_set_up_stripe_account_for_your_business/?ref=share&ref_source=link

  8. HenrydeT表示:

    pinup-kazi.ru пин ап вход пин ап казино

  9. DarioTob表示:

    вавада казино: вавада казино онлайн – вавада

  10. RobertFlacy表示:

    В условиях высокой конкуренции на онлайн-рынке эффективное продвижение сайтов в СПб становится активным источником дохода для бизнеса. Отсутствие четкой стратегии и алгоритма оптимизации приводит к тому, что сайт невидим для существующих, что неизбежно неизбежно происходит при выполнении поставленных бизнес-задач.

  11. Highly energetic blog, I loved that bit. Will there be a part 2?

    Here is my homepage :: best realtor in columbus oh

  12. Val表示:

    Pub Crawl 오피 – Val

  13. HenrydeT表示:

    pin up казино пин ап казино онлайн пинап казино

  14. DarioTob表示:

    казино вавада: вавада онлайн казино – вавада

  15. Jamesdiure表示:

    вавада казино: вавада казино онлайн – вавада онлайн казино

  16. CurtisIncix表示:

    пин ап вход: пин ап зеркало – пин ап казино

  17. Hong Sherrod表示:

    In recent years, the keto diet has gained immense popularity as a go-to weight loss strategy.

  18. DomingoRow表示:

    Камеры видеонаблюдения выполняют различные задачи: они помогают отпугивать нарушителей, фиксируют события на охраняемой территории и контролируют действия сотрудников Беспроводные камеры видеонаблюдения

  19. CurtisIncix表示:

    пин ап кз: pinup-kazi.kz – пин ап казино

  20. Hi, all is going sound here and ofcourse every one is sharing information, that’s truly good, keep up
    writing.

    Feel free to visit my blog real estate agent in columbus oh

  21. Isabelle表示:

    Betinia casino i Sverige har ett väldigt varierande utbud av slotspel som vi tycker är väldigt intressant.

發佈留言

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