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,447,423 Responses

  1. Brandonnot表示:

    pet meds without vet prescription canada: Canadian Md Pharm – 77 canadian pharmacy

  2. CurtisBam表示:

    Best online Indian pharmacy: IndianCertPharm – indian pharmacy

  3. It’s fantastic that you are getting ideas from this piece of writing as well as from our dialogue
    made at this time.

  4. mostbet pl表示:

    Każda z nich oferuje unikalne zasady i różne poziomy
    RTP, co pozwala graczom na wybór najlepszej opcji dla siebie.

  5. Brandonnot表示:

    canadian pharmacies comparison: CanadianMdPharm – cross border pharmacy canada

  6. Brandonnot表示:

    indianpharmacy com: Indian Cert Pharm – indian pharmacies safe

  7. kypit 1s_qyor表示:

    купить программу 1с бухгалтерия [url=https://aktivnoe.forum24.ru/?1-4-0-00000210-000-0-0]купить программу 1с бухгалтерия[/url] .

  8. kypit 1s_jeEn表示:

    купить 1с бухгалтерия 8.3 проф версия цена https://svarog.forum24.ru/?1-0-0-00000330-000-0-0/ .

  9. kypit 1s_woor表示:

    1с предприятие купить программу 1с предприятие купить программу .

  10. kypit 1s_gkor表示:

    программы фирмы 1с программы фирмы 1с .

  11. kypit 1s_lsEn表示:

    программа 1с купить с установкой [url=http://www.rodoslav.forum24.ru/?1-3-0-00000090-000-0-0-1737112660]программа 1с купить с установкой[/url] .

  12. kypit 1s_vfEn表示:

    купить программу 1с бухгалтерия купить программу 1с бухгалтерия .

  13. I love your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for
    you? Plz reply as I’m looking to create my own blog and would
    like to know where u got this from. thank you

  14. Carrolleruck表示:

    https://canadianmdpharm.com/# pharmacy rx world canada
    canadian pharmacy online store

  15. Johnathan表示:

    10 In Order To Look When Ever Choosing A Hen Party
    Venue 광주키스방 (Johnathan)

  16. kypit 1s_xkEn表示:

    настройка 1с бухгалтерии цена настройка 1с бухгалтерии цена .

  17. kypit 1s_zgEn表示:

    1с бухгалтерия купить 1с бухгалтерия купить .

  18. CurtisBam表示:

    canadian pharmacy tampa: Canadian Md Pharm – canadian pharmacy drugs online

  19. Thank you for the auspicious writeup. It actually was once a entertainment account it.

    Glance advanced to far delivered agreeable from you!
    By the way, how can we keep up a correspondence?

  20. kypit 1s_dior表示:

    купить 1с бухгалтерия купить купить 1с бухгалтерия купить .

  21. kypit 1s_sfor表示:

    настроить 1с бухгалтерия цена https://svstrazh.forum24.ru/?1-3-0-00000323-000-0-0-1737110513 .

發佈留言

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