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,672,777 Responses

  1. Diplomi_voMl表示:

    купить диплом гознак недорого купить диплом гознак недорого .

  2. Excellent post, really interesting. RCTD-336 at its finest.

  3. Can I simply just say what a relief to uncover someone who
    genuinely knows what they’re discussing online. You definitely understand how to bring an issue to light and make it important.
    More people must check this out and understand this side of the story.
    It’s surprising you’re not more popular given that you certainly have the gift.

  4. AlbertShund表示:

    https://olympecasino.pro/# olympe casino en ligne

  5. Thomasreusa表示:

    online pharmacy no prescription Comprehensive medicine guide. Drug facts here. mexican pharmacy onlineno rx

  6. 1win_gbKn表示:

    1win партнерская программа вход https://1win7020.ru/ .

  7. Diplomi_muMl表示:

    купить диплом в новошахтинске rusdiplomm-orig.ru .

  8. Jariorkjc表示:

    Наши специалисты предлагают быстро и выгодно приобрести диплом, который выполнен на оригинальном бланке и заверен печатями, штампами, подписями. Данный диплом способен пройти любые проверки, даже с использованием специфических приборов. miracleakademi.com/employer/premiumydiploma

  9. Jariorvsb表示:

    Наши специалисты предлагают выгодно приобрести диплом, который выполняется на оригинальном бланке и заверен мокрыми печатями, водяными знаками, подписями должностных лиц. Документ пройдет любые проверки, даже при использовании профессиональных приборов. collegejobportal.in/employer/premiumydiploma

  10. AlbertShund表示:

    https://olympecasino.pro/# casino olympe

  11. Williamwhogs表示:

    olympe casino avis: olympe – olympe

  12. VictorVal表示:

    olympe: olympe casino en ligne – olympe casino avis

  13. 188bet表示:

    What’s up, always i used to check webpage posts here early
    in the dawn, since i enjoy to learn more and
    more.

  14. Gregoryron表示:

    casino olympe: olympe casino – olympe

  15. click表示:

    Amazing lots of fantastic data!

    My web blog … https://seconddialog.com

  16. Ronaldbet表示:

    casino olympe olympe casino

  17. VictorVal表示:

    olympe casino en ligne: olympe casino avis – olympe

  18. 1win_ioKn表示:

    1вин официальный мобильная http://www.1win7020.ru .

  19. Diplomi_brMl表示:

    купить диплом любой rusdiplomm-orig.ru .

  20. mostbet_eama表示:

    мосбет казино mostbet5008.ru .

  21. Black.com BF HD is a terrific website for gay men seeking sexual
    content.

  22. Williamwhogs表示:

    olympe casino avis: olympe casino – olympe casino cresus

  23. оценка профессиональных рисков в организации ocenka-profriskov495.ru .

  24. 1с бухгалтерия сопровождение программного programmy-1s15.ru .

  25. Mazrxcf表示:

    Мы предлагаем дипломы любых профессий по приятным тарифам. Стараемся поддерживать для заказчиков адекватную ценовую политику. Для нас важно, чтобы дипломы были доступны для большого количества наших граждан.
    Покупка документа, который подтверждает окончание института, – это выгодное решение. Заказать диплом о высшем образовании: zakaz-na-diplom.ru/kupit-diplom-ob-okonchanii-kolledzha-3/

發佈回覆給「150Kw diesel generator」的留言 取消回覆

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