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,477,990 Responses

  1. Davao表示:

    Casino Game Reviews Davao

  2. Jamesdiure表示:

    пинап казино: pinup – пин ап казино официальный сайт

  3. I am always opinionated about this, thanks for posting.

    Here is my website; http://Jeepin.com/forum/member.php?u=168129

  4. 7 Helpful Tricks To Making The Most Out Of Your Small Wine Fridge Best
    Rated Wine Refrigerators (Altbookmark.Com)

  5. DarioTob表示:

    pinup kazi: пинап казино – пин ап зеркало

  6. Jamesdiure表示:

    пин ап казино официальный сайт: пин ап казино официальный сайт – пин ап казино официальный сайт

  7. HitClub chính là nơi biến ước mơ thành hiện thực với vô số cơ hội kiếm tiền từ game đổi thưởng! HitClub

  8. It additionally can assist you decide what to eat to shed some pounds if/if you hit that dreaded weight loss plateau.

    My website เกมคาสิโน

  9. DarioTob表示:

    вавада онлайн казино: казино вавада – казино вавада

  10. Josephmax表示:

    http://pinup-kazi.kz/# пин ап кз

  11. Nikefut表示:

    darknet market deep web drug markets free dark web

  12. Pretty! This was an incredibly wonderful article. Thanks for
    supplying this information.

  13. Jamesdiure表示:

    вавада онлайн казино: vavada-kazi.ru – вавада казино зеркало

  14. Jamesdiure表示:

    pin up казино: пин ап казино онлайн – пинап казино

  15. DarioTob表示:

    казино вавада: vavada-kazi.ru – вавада

  16. Jamesdiure表示:

    пин ап кз: пин ап казино онлайн – пин ап казино

  17. I don’t know if it’s just me or if perhaps everyone else
    encountering problems with your site. It appears as if some of the text on your content
    are running off the screen. Can somebody else please provide feedback and let me know
    if this is happening to them as well? This might be a problem with my browser because I’ve had this
    happen previously. Thank you

  18. I really like looking through a post that will make people think.
    Also, many thanks for allowing me to comment!

  19. Joshua Snyder表示:

    This was a wonderful guide. Check out mobile tire service for more

  20. I do not even know the way I ended up here, but I believed this submit used to be great.
    I don’t realize who you are but certainly you’re going to
    a well-known blogger when you are not already.
    Cheers!

  21. Tremendous things here. I’m very glad to see your article. Thanks a lot and I am having a look forward
    to contact you. Will you kindly drop me a mail?

  22. Iyannaobesk表示:

    jackpoker
    jackpoker играть

  23. CurtisIncix表示:

    пин ап зеркало: пин ап зеркало – пин ап зеркало

  24. Featuring the significant “786” symbol, it’s crafted to add a contact of cultural significance to any look.

發佈留言

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