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,110 Responses

  1. eric power表示:

    Hello mates, good post and fastidious arguments commented at this place, I am truly enjoying by these.

    Also visit my web blog eric power

  2. My family always say that I am killing my time here at web, except I
    know I am getting familiarity every day by reading such good articles or reviews.

  3. выведение из запоя воронеж стационар http://ideya.forums.party/viewtopic.php?id=661 .

  4. Aryba.kg表示:

    Body Massage 마사지 (Aryba.kg)

  5. BernardMop表示:

    buy Lisinopril 1st lisinopril1st lisinopril1st

  6. BrandenSlomy表示:

    prednisone 5 50mg tablet price: buy prednisone – prednisone 10mg price in india

  7. AlbertDuM表示:

    ivermectin 8 mg: inverfast.com – stromectol ebay

  8. website here表示:

    Hi, i believe that i saw you visited my site thus i came to return the want?.I’m trying to in finding things to enhance my site!I assume its ok to use some of your ideas!!

  9. hi!,I like your writing so so much! share we keep in touch extra about
    your post on AOL? I require an expert in this space to unravel my problem.
    May be that’s you! Looking ahead to look you.

  10. Nick表示:

    Night Spa 밤문화 – Nick,

  11. Anal Sex表示:

    Wow, this post is good, my younger sister
    is analyzing these kinds of things, therefore I am going to convey her.

  12. Markdob表示:

    Приветствую. Подскажите, где почитатьполезные статьи о недвижимости? Пока нашел – https://tpkv94.ru

  13. DarrenUnjuh表示:

    http://plavixclo.com/# Clopidogrel 75 MG price

  14. DarrenUnjuh表示:

    http://plavixclo.com/# Plavix 75 mg price

  15. For latest information you have to pay a visit world wide web
    and on internet I found this site as a most excellent web page for most up-to-date updates.

  16. Markdob表示:

    Всем привет! Подскажите, где почитатьразные статьи о недвижимости? Сейчас читаю – https://tpkv94.ru

  17. Markdob表示:

    Приветствую. Может кто знает, где найтиполезные блоги о недвижимости? Пока нашел – https://tpkv94.ru

  18. BernardMop表示:

    buy Lisinopril online buy Lisinopril 1st zestril tablet

  19. JacobLoody表示:

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

  20. BrandenSlomy表示:

    purchase amoxicillin 500 mg: cheap amoxil – amoxacillian without a percription

  21. It ran 19 nights, that includes seven haunted houses.

  22. This information is priceless. When can I find out more?

  23. Markdob表示:

    Приветствую. Может кто знает, где почитатьполезные блоги о недвижимости? Сейчас читаю – https://tpkv94.ru

  24. AlbertDuM表示:

    buy cytotec in usa: cytpremium – buy cytotec over the counter

發佈留言

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