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...

845,231 Responses

  1. WilliamRhype表示:

    http://nolvadex.life/# common side effects of tamoxifen

  2. Your Worst Nightmare About Treatments For Adhd Come To Life Treating adult adhd

  3. This Week’s Most Remarkable Stories About Best CSGO Opening Site
    Best CSGO Opening Site counter-strike cases

  4. 8 Tips For Boosting Your Slot Technology Game slots with free bonus Rounds

  5. case chroma表示:

    What Is CS GO Cases To Open’ History? History Of CS GO Cases To Open case chroma

  6. RandallTaulp表示:

    lisinopril tablets india: lisinopril 60 mg daily – can i order lisinopril online

  7. Encoskr.Com表示:

    What’s The Reason Everyone Is Talking About Amateur Slots Today Top-Rated Online Slots (Encoskr.Com)

  8. You actually expressed that wonderfully!

  9. Motorcycle Accident Lawyers Techniques To Simplify Your Everyday Lifethe Only Motorcycle Accident Lawyers Technique Every Person Needs To
    Be Able To motorcycle accident Lawyers

  10. The Three Greatest Moments In Mesothelioma Law History Mesothelioma litigation

  11. Tawnya表示:

    10 Things That Your Family Taught You About London Window And
    Door london window and door (Tawnya)

發佈留言

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