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,478,609 Responses

  1. HenrydeT表示:

    vavada-kazi.ru vavada kazi вавада казино

  2. CurtisIncix表示:

    pin up казино: pin up казино – pinup

  3. Poker表示:

    Hi to all, how is the whole thing, I think every
    one is getting more from this web site, and your views are fastidious in support
    of new viewers.

  4. I was curious if you ever thought of changing the structure of your
    website? Its very well written; I love what
    youve got to say. But maybe you could a little more in the
    way of content so people could connect with it better. Youve got an awful lot of
    text for only having 1 or 2 pictures. Maybe you could
    space it out better?

  5. DarioTob表示:

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

  6. Josephmax表示:

    http://pinup-kazi.ru/# pinup-kazi.ru

  7. DarioTob表示:

    казино вавада: казино вавада – vavada-kazi.ru

  8. DarioTob表示:

    пин ап казино: pinup – пин ап казино

  9. CurtisIncix表示:

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

  10. Jamesdiure表示:

    пин ап вход: pinup kazi – pinup

  11. Tier 1 Link表示:

    9 Lessons Your Parents Taught You About Tier 1 Link Building
    Tier 1 Link

  12. I’m impressed, I must say. Seldom do I come across a blog that’s both educative and engaging, and
    without a doubt, you have hit the nail on the head.
    The issue is an issue that too few men and women are speaking intelligently about.
    I am very happy I stumbled across this during my
    search for something relating to this.

  13. Pol88表示:

    Hey! I know this is kinda off topic however , I’d figured I’d ask.
    Would you be interested in exchanging links or maybe guest authoring a blog post or vice-versa?
    My site discusses a lot of the same subjects
    as yours and I think we could greatly benefit from each other.

    If you’re interested feel free to shoot me an e-mail.
    I look forward to hearing from you! Awesome blog by the way!

  14. DerekWab表示:

    кухня заказать легко и удобно с профессиональными мастерами, которые учтут все детали.

  15. Hi, just wanted to say, I loved this blog post.
    It was helpful. Keep on posting!

    Check out my blog post … 온라인슬롯사이트

  16. tv box set表示:

    It’s going to be finish of mine day, but before end I am reading this fantastic
    piece of writing to increase my know-how.

    Feel free to visit my webpage – tv box set

  17. RobertSoarf表示:

    Задачи и роль QA-инженера: путь к успешной карьере в области тестирования программных продуктов. Узнайте, какие навыки и знания необходимы специалисту для качественного выполнения задач на всех этапах разработки: https://dzen.ru/a/ZvqB94uwl1C-1ivx

  18. Jamesdiure表示:

    пин ап кз: пин ап кз – пин ап казино онлайн

  19. My family always say that I am wasting my time here at web, except I know I am getting
    know-how all the time by reading such fastidious posts.

  20. DarioTob表示:

    пинап казино: пин ап казино официальный сайт – пин ап зеркало

  21. CurtisIncix表示:

    pinup kazi: pinup kazi – pinup-kazi.ru

  22. CurtisIncix表示:

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

  23. как вызвать эвакуатор http://webdev.ru/forum/topic/11644 в спб? как быть, если чужой автомобиль перекрыл выезд?

  24. Looking for a different eating knowledge? Visit the Eiffel Tower Restaurant at Paris Las Vegas and savour delicious French delicacies with astonishing perspectives of the Strip. Reserve your desk on Las Vegas Private Strippers for an unforgettable night

  25. Thanks for the good writeup. It in truth was a enjoyment account it.
    Glance complex to more brought agreeable from you! By the way, how can we be in contact?

  26. Hey there! I’ve been reading your site for a long
    time now and finally got the courage to go ahead and give
    you a shout out from New Caney Tx! Just wanted
    to say keep up the fantastic job!

  27. LeonardKnism表示:

    кухни петербурга – Широкий ассортимент кухонь, которые украсят ваш дом в Санкт-Петербурге.

  28. Waltercex表示:

    Вы можете купить медицинскую справку в мед центре https://hearth-health.ru/ в Москве без прохождения врачей.

發佈留言

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