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,623,865 Responses

  1. Samuelcuh表示:

    USACanadaPharm: USACanadaPharm – canada pharmacy 24h

  2. StephenCer表示:

    reddit canadian pharmacy: usa canada pharm – USACanadaPharm

  3. TimothyDok表示:

    USACanadaPharm USACanadaPharm best online canadian pharmacy

  4. TimothyDok表示:

    usa canada pharm best rated canadian pharmacy escrow pharmacy canada

  5. 1win_vjSt表示:

    адин вин 1win7017.ru .

  6. Samuelcuh表示:

    buy prescription drugs from canada cheap: canadian pharmacy meds – usa canada pharm

  7. I couldn’t resist commenting. Exceptionally well written!

  8. Cody表示:

    Here is the checklist of stars who attempted to strip– Celeb Nude.

  9. Albertbiave表示:

    https://usacanadapharm.com/# canadian world pharmacy

  10. Greɑt goods from yօu, man. I’ve understand уour stuff ρrevious tߋ and you are juѕt extremely great.
    I actuɑlly likе wһat you have acquired hеrе,
    really ⅼike whɑt you’re sаying and the ᴡay in whiсh
    you say it. Yоu mаke іt enjoyable and yоu still take care of to ҝeep it wise.
    Ι сant wait tߋ гead far more fгom you. This is aсtually a tremendous
    web site.

    my blog – ремонт и восстановление картриджей

  11. Albertbiave表示:

    https://usacanadapharm.com/# canada drugstore pharmacy rx

  12. Trefkpz表示:

    Приобрести диплом любого ВУЗа. Заказ диплома через надежную фирму дарит немало плюсов для покупателя. Такое решение позволяет сберечь как дорогое время, так и значительные финансовые средства. mosreg.flybb.ru/viewtopic.php?f=2&t=769

  13. Terrygor表示:

    Drug specifics here. https://isotretinointop.shop/# Pill guide here. buy legit accutane

  14. Dwightkak表示:

    usa canada pharm: USACanadaPharm – canadian world pharmacy

  15. StephenCer表示:

    is canadian pharmacy legit: usa canada pharm – USACanadaPharm

  16. Albertbiave表示:

    https://usacanadapharm.shop/# canadian pharmacy world

  17. StephenCer表示:

    usa canada pharm: usa canada pharm – reliable canadian pharmacy reviews

  18. Therefore, you sһould concentrate on find mindful yourself .

    strategy rather than a win-proⲟf strategy.
    Ask your friend if you happen to have a Cardsharp with them to aid you
    get starteɗ with your game.

    Here is mу websitе … Betflix Casino รีวิวเว็บคาสิโนเบทฟลิก และ ทางเข้าสู่ระบบล่าสุด 2568

  19. melbet_tyKl表示:

    melbet kg скачать http://melbet1002.ru/ .

  20. Albertbiave表示:

    https://usacanadapharm.com/# USACanadaPharm

發佈回覆給「Dwightkak」的留言 取消回覆

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