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,370,212 Responses

  1. BarryDof表示:

    http://rybelsus.shop/# rybelsus pill

  2. Gartandabsex表示:

    Смешные анекдоты
    Заходи посмеяться

  3. HaroldBig表示:

    ozempic online: Ozempic without insurance – Ozempic without insurance

  4. Jeremypag表示:

    rybelsus coupon semaglutide cost cheapest rybelsus pills

  5. RamonRek表示:

    ozempic: ozempic cost – ozempic online

  6. 10 Unexpected Windows Eastleigh Town Tips Upvc Door Repair Eastleigh

  7. **1win Guatemala: Tu Mejor Opción para Apuestas Deportivas y Juegos de Casino**

    Si estás buscando una plataforma confiable y emocionante para apostar en deportes y disfrutar de los mejores juegos de casino,
    **1win Guatemala** es la respuesta perfecta. Con una interfaz amigable y una gran variedad de
    opciones, este sitio te ofrece una experiencia de juego única y llena de emociones.

    ### Apuestas deportivas en 1win Guatemala
    En **1win Guatemala**, puedes apostar en una amplia gama
    de deportes: desde los populares como fútbol, baloncesto y
    tenis, hasta deportes menos convencionales. La plataforma ofrece cuotas competitivas que te permitirán maximizar
    tus ganancias mientras disfrutas del deporte que más te apasiona.
    Además, 1win te mantiene informado en tiempo real con estadísticas
    actualizadas, lo que te ayuda a tomar decisiones más precisas a la hora de hacer tus apuestas.

    ### Casino online: Diversión sin límites
    Si los deportes no son lo tuyo, no te preocupes. **1win Guatemala** también cuenta con un extenso casino online que
    incluye juegos clásicos como las tragamonedas, póker,
    ruleta, blackjack y muchos más. Las máquinas tragamonedas en 1win destacan por
    su calidad visual, temas variados y atractivos premios, mientras que las mesas de
    póker y ruleta ofrecen una experiencia realista y envolvente.

    ### Bonos y promociones
    Uno de los aspectos más atractivos de **1win Guatemala** es la generosidad en sus bonos y promociones.

    Al registrarte, puedes recibir un **bono de bienvenida** que multiplicará tu primer depósito
    y te dará más oportunidades de jugar y ganar.
    Además, el sitio ofrece promociones continuas para
    los usuarios habituales, incluyendo cashback y premios
    especiales en torneos.

    ### Facilidad de uso y soporte al cliente
    La plataforma de **1win** es fácil de usar tanto en ordenadores como
    en dispositivos móviles. Esto te permite disfrutar de tus apuestas y juegos favoritos desde cualquier lugar y en cualquier momento.

    Si tienes alguna duda o problema, el equipo de atención al cliente está disponible las 24 horas para brindarte asistencia rápida y eficiente, asegurando
    que tu experiencia sea siempre positiva.

    ### ¿Cómo registrarte en 1win Guatemala?

    El proceso de registro en **1win** es simple y rápido.
    Solo necesitas ingresar algunos datos básicos y
    en pocos minutos estarás listo para comenzar a apostar.
    Además, el sitio garantiza la seguridad de tu información personal y financiera, ofreciéndote
    una plataforma confiable y segura para disfrutar de tus
    juegos favoritos.

    ### Conclusión
    **1win Guatemala** es la mejor opción para aquellos
    que buscan una plataforma completa para apuestas deportivas y juegos
    de casino. Con una amplia selección de deportes, juegos de casino emocionantes, bonos generosos
    y una interfaz fácil de usar, 1win se convierte en el destino perfecto para jugadores de todo tipo.
    ¡Regístrate hoy y comienza a disfrutar de una experiencia de juego inigualable!

    “https://spudz.org/index.php?title=User:LavonGormly”

  8. boob job表示:

    Very good article! We are linking to this great content on our website.
    Keep up the great writing.

  9. RamonRek表示:

    rybelsus cost: semaglutide online – buy rybelsus online

  10. Togel4D表示:

    9 Lessons Your Parents Teach You About Togel4d Togel4D

  11. HaroldBig表示:

    buy semaglutide online: buy semaglutide pills – semaglutide cost

  12. key Audi表示:

    9 Lessons Your Parents Taught You About Key Audi key Audi

  13. BarryDof表示:

    https://rybelsus.shop/# cheapest rybelsus pills

  14. Do you have a spam issue on this site; I also am a blogger, and I was wondering your situation; we have created some nice methods and we are looking to swap strategies
    with other folks, please shoot me an email if interested.

    Also visit my homepage home construction services

  15. alphabites表示:

    When I initially commented I appear to have clicked on the -Notify me when new
    comments are added- checkbox and now every time a comment is added I get 4
    emails with the same comment. Perhaps there is an easy method you are able to remove
    me from that service? Many thanks!

    Feel free to surf to my blog post – alphabites

  16. HaroldBig表示:

    buy cheap ozempic: Ozempic without insurance – buy cheap ozempic

  17. Alana表示:

    Saved as a favorite, I really like your web site!

  18. Профессиональный сервисный центр по ремонту электросамокатов в Москве.
    Мы предлагаем: электросамокат xiaomi ремонт колеса в москве
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. luck8表示:

    I blog quite often and I seriously thank you for your content.
    This great article has really peaked my interest. I am going
    to take a note of your website and keep checking
    for new details about once per week. I subscribed to your RSS feed as
    well.

  20. RamonRek表示:

    semaglutide online: rybelsus pill – rybelsus price

  21. Jeremypag表示:

    ozempic ozempic online ozempic coupon

  22. BarryDof表示:

    https://rybelsus.shop/# semaglutide tablets

  23. 10 Unexpected Double Glazing Milton Keynes Tips Locksmith In Milton Keynes

  24. HaroldBig表示:

    ozempic cost: ozempic generic – ozempic

  25. pafipakam.org表示:

    Hi colleagues, fastidious piece of writing and pleasant urging commented here,
    I am in fact enjoying by these.

  26. nuddies表示:

    Hello! This post could not be written any better!
    Reading through this post reminds me of my old room mate!
    He always kept talking about this. I will forward this write-up to him.
    Pretty sure he will have a good read. Thank you for sharing!

  27. 2In1 Pram表示:

    The Little-Known Benefits To Pram Pushchair 2 In 1 2In1 Pram

  28. Jeremypag表示:

    ozempic ozempic generic Ozempic without insurance

  29. Audi Key Fob表示:

    10 Best Books On Replacement Audi Car Key Audi Key Fob

發佈留言

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