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,626,057 Responses

  1. Dwightkak表示:

    usa canada pharm: canadapharmacyonline – USACanadaPharm

  2. Trefybd表示:

    Приобрести диплом об образовании. Заказ документа о высшем образовании через проверенную и надежную фирму дарит ряд преимуществ для покупателя. Данное решение дает возможность сэкономить время и значительные финансовые средства. prime-jobs.ch/companies/eonline-diploma

  3. lottochamp表示:

    What’s up colleagues, fastidious article and nice urging commented here, I am really enjoying by these.

  4. Excellent collection of Hindi hot blue movie
    video clips. Maintain going!

  5. Samuelcuh表示:

    canada drugs online review: usa canada pharm – canada rx pharmacy

  6. 1win_oukl表示:

    jocuri de noroc online moldova 1win5026.ru .

  7. TimothyDok表示:

    cross border pharmacy canada canada pharmacy reviews USACanadaPharm

  8. PrimeAurora表示:

    Good web site you have here.. It’s hard to find good quality writing
    like yours nowadays. I truly appreciate individuals like you!
    Take care!!

  9. Hi! I could have sworn I’ve been to this blog before but after reading through some of the post I realized it’s
    new to me. Nonetheless, I’m definitely delighted I found it and I’ll be bookmarking and checking back frequently!

  10. StephenCer表示:

    usa canada pharm: usa canada pharm – USACanadaPharm

  11. TimothyDok表示:

    USACanadaPharm usa canada pharm ordering drugs from canada

  12. Dwightkak表示:

    global pharmacy canada: USACanadaPharm – usa canada pharm

  13. StephenCer表示:

    cheap canadian pharmacy online: usa canada pharm – maple leaf pharmacy in canada

  14. Albertbiave表示:

    https://usacanadapharm.shop/# USACanadaPharm

  15. 1win_ggSt表示:

    1win скачать kg http://1win7017.ru .

  16. Albertbiave表示:

    http://usacanadapharm.com/# USACanadaPharm

  17. Albertbiave表示:

    https://usacanadapharm.shop/# usa canada pharm

  18. Samuelcuh表示:

    legit canadian online pharmacy: canadian pharmacy online – canadianpharmacy com

  19. Dwightkak表示:

    USACanadaPharm: usa canada pharm – USACanadaPharm

  20. Sazrzdz表示:

    Купить диплом на заказ в столице можно используя официальный сайт компании. socialvockmarkingsiteswithhighda.copiny.com/question/details/id/1084414

  21. Sazrmnc表示:

    Заказать диплом можно через сайт компании. blogger-mania.mn.co/posts/82691355

  22. Dwightkak表示:

    canadian pharmacy near me: usa canada pharm – canadian pharmacy

  23. bk8thai表示:

    Why people still make use of to read news papers when in this technological world all is existing
    on web?

  24. Great audio high quality and clear voices in this desi Indian mallu XXX
    sex in Hindi.

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

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