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,476,660 Responses

  1. RogerFaf表示:

    http://maxpillsformen.com/# Cialis 20mg price in USA

  2. Barrybib表示:

    Cheap Sildenafil 100mg: Fast Pills For Men – sildenafil 50 mg price

  3. вызов нарколога на дом частная скорая помощь вызов нарколога на дом частная скорая помощь .

  4. Barrybib表示:

    Cheap Cialis: Buy Tadalafil 10mg – п»їcialis generic

  5. Charlesbot表示:

    http://fastpillseasy.com/# buy erectile dysfunction treatment

  6. срочное оформление загранпаспорта срочное оформление загранпаспорта .

  7. Lotto Numbers表示:

    For winnings above Php 10,000.00, a 20% tax applies, in accordance with the TRAIN Law.

    Here is my web page … Lotto Numbers

  8. TokenTact表示:

    Hey There. I found your blog using msn. This is a really well written article.

    I will make sure to bookmark it and return to learn more of
    your useful information. Thank you for the post.

    I will certainly return.

  9. Nora Boone表示:

    Kudos to those advocating for better awareness of home care anderson ! It can make a world of difference here in Anderson

  10. What Is Everyone Talking About Train Injury Claim Right Now big Truck accident lawyer

  11. RogerFaf表示:

    https://fastpillsformen.com/# Cheapest Sildenafil online

  12. Hey just wanted to give you a quick heads up.
    The text in your content seem to be running off
    the screen in Opera. I’m not sure if this is a
    formatting issue or something to do with web browser compatibility but I figured I’d
    post to let you know. The design look great though! Hope
    you get the problem resolved soon. Cheers

  13. Charlesbot表示:

    https://fastpillseasy.com/# erectile dysfunction online

  14. Barrybib表示:

    online ed pills: fast pills easy – buying ed pills online

  15. RogerFaf表示:

    https://maxpillsformen.com/# Tadalafil price

  16. Charlesbot表示:

    https://fastpillseasy.com/# best online ed pills

  17. Great write-up! I’m hoping more people realize how vital it is to hire experts for their home maintenance needs like Gutter Cleaning Service Gutter repair

  18. BrettTIT表示:

    Cheap Sildenafil 100mg: FastPillsForMen.com – over the counter sildenafil

  19. I know this web page presents quality depending content and additional stuff, is there
    any other website which provides these stuff in quality?

  20. Chill All Of The Hot Summer Using Inflatable Salad Bar 오피사이트

  21. 5 Killer Quora Answers On Car Accidents Attorneys Car accidents Attorneys

發佈留言

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