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,520,473 Responses

  1. Marvin表示:

    The Next Big Trend In The Private Psychiatrist North East England Industry private psychiatrist bristol (Marvin)

  2. Precious表示:

    10 Signs To Watch For To Get A New Foldable Cheap
    Treadmill affordable folding treadmill (Precious)

  3. This is really interesting, You’re a very skilled blogger.

    I have joined your rss feed and look forward to seeking more of
    your great post. Also, I’ve shared your website in my social networks!

  4. Sazrrym表示:

    Как приобрести диплом о среднем образовании в Москве и других городах
    onelife.forumex.ru/viewtopic.php?f=3&t=151

  5. Williamagric表示:

    ed treatment options https://indianpharm24.pro/# п»їlegitimate online pharmacies india

  6. hentaisex表示:

    I’m impressed, I must say. Rarely do I encounter a blog that’s both educative and entertaining,
    and without a doubt, you have hit the nail on the head.
    The issue is something that too few men and women are speaking intelligently about.

    Now i’m very happy that I stumbled across this during my search for something regarding this.

  7. Sazrbvj表示:

    Быстрое обучение и получение диплома магистра – возможно ли это?

    boxer-forum.ru/viewtopic.php?f=17&t=4424

  8. LeroyBak表示:

    mexican border pharmacies shipping to usa mexico pharmacy buying prescription drugs in mexico

  9. duplicate表示:

    11 Ways To Completely Revamp Your Replacement Key For Skoda Fabia duplicate

  10. Aline表示:

    Compensation amounts are based on a variety of factors and
    are determined by a variety of factors, including how the illness has affected the individual’s life.

    The type of claim made will also impact the asbestos compensation (Aline) amount.

  11. It�s nearly impossible to find educated folks for this topic, but you sound like you know what you�re talking about! Thanks

    Also visit my web site – http://www.Glaschat.ru/glas-f/member.php?317312-Svetlgpz

  12. Williamagric表示:

    best ed medications http://indianpharm24.pro/# reputable indian online pharmacy

  13. LeroyBak表示:

    india pharmacy Indian pharmacy international shipping Online medicine home delivery

  14. Drug information for patients. What side effects can this medication cause?
    olmesartan hydrochlorothiazide combination
    Some news about medication. Read now.

  15. Trefbmf表示:

    Парадокс, но купить диплом кандидата наук оказалось не так и сложно
    student-news.ru/kak-vyibrat-nadezhnogo-prodavtsa-diplomov

  16. Sazrfuc表示:

    Как приобрести аттестат о среднем образовании в Москве и других городах

    runite.mn.co/posts/69998729

  17. Sazrqzo表示:

    Как получить диплом техникума с упрощенным обучением в Москве официально
    forum.24hours.site/index.php?topic=412989.new#new

  18. Window Repair Near Me Tips To Relax Your Daily Life Window Repair Near Me
    Trick That Everybody Should Learn Window Repair Near Me

  19. Five Killer Quora Answers On Accident Lawyers Near Me accident lawyers Near Me

  20. Sazrttx表示:

    Легальная покупка школьного аттестата с упрощенной программой обучения

    forum.osvita.od.ua/viewtopic.php?f=1&t=37221

  21. Are You Sick Of Sectional Sofa L Shaped? 10 Inspirational Resources To Rekindle Your Love L Shape Sleeping Sofa

  22. taikwu.com.Tw表示:

    How Much Does A Cat Flap Cost? cat flaps (taikwu.com.Tw)

發佈留言

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