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,368,859 Responses

  1. NathanHip表示:

    Descubra o horario de brasilia e tenha a certeza de estar sempre no fuso horário correto. Perfeito para quem vive ou trabalha na capital e precisa de pontualidade!

  2. Thanks in favor of sharing such a pleasant thought,
    paragraph is good, thats why i have read it completely

  3. Armandoknot表示:

    Как поднять себе настроение? Почитайте
    прикольные анекдоты и поделитесь с близкими.

  4. How Pragmatic Altered My Life For The Better 프라그마틱 정품

  5. Hello to every one, the contents present at this site are truly
    awesome for people knowledge, well, keep up the nice work fellows.

    my web site … building construction services

  6. Cazrctb表示:

    Добрый день!
    Мы предлагаем документы ВУЗов
    collieforum.ru/posting.php?mode=post&f=17

  7. Jeremypag表示:

    Ozempic without insurance ozempic coupon ozempic generic

  8. Hi there i am kavin, its my first time to
    commenting anywhere, when i read this piece of writing
    i thought i could also create comment due to this
    good post.

  9. BarryDof表示:

    http://rybelsus.shop/# buy rybelsus online

  10. Aisha Mueller表示:

    If you wish for to obtain a great deal from this piece of writing then you have to apply such strategies to your won webpage.

  11. HaroldBig表示:

    buy semaglutide online: buy semaglutide online – cheapest rybelsus pills

  12. Все няни проходят серьезную данные в полиции, сколько стоит няня в СПб
    и проходят тестирование с психологом
    и медицинскую комиссию.

  13. How To Be Able To For An Awesome Seo Expert 검색엔진최적화

  14. Alex表示:

    This paragraph is truly a fastidious one it assists new net users, who are
    wishing for blogging.

  15. I really like what you guys are usually up too. This kind of clever work and coverage!
    Keep up the wonderful works guys I’ve you guys to my
    personal blogroll.

  16. You really make it seem so easy with your presentation however I find this topic to
    be actually something that I think I’d by no means understand.

    It sort of feels too complicated and very broad for me.

    I am taking a look ahead in your subsequent post, I’ll try
    to get the cling of it!

  17. check this表示:

    Hi, every time i used to check weblog posts here early in the break of day,
    because i enjoy to find out more and more.

  18. scat porn表示:

    For latest news you have to visit world wide web and
    on world-wide-web I found this web site as a most excellent web page for most recent updates.

  19. nolkdnmpq表示:

    Atlanta dream vs connecticut sun match player stats. Chives. How old is mike tyson. Mudskipper. Shanghai. Free republic. Co2. Tb. Aspirin. https://81.200.117.113

  20. Jeremypag表示:

    ozempic coupon ozempic generic ozempic coupon

  21. Hi there just wanted to give you a quick heads up. The words in your post seem to be running
    off the screen in Ie. I’m not sure if this is a format issue or something to do with browser compatibility but I thought I’d post to let you know.
    The design and style look great though! Hope you get the
    problem fixed soon. Cheers

  22. **1win Venezuela: Tu Oportunidad de Ganar Grandes Premios**

    ¿Estás buscando una plataforma de apuestas en línea
    confiable y emocionante? ¡No busques más!

    **1win Venezuela** es el sitio ideal para aquellos que desean disfrutar de
    una experiencia de juego inigualable, con una amplia variedad de deportes,
    juegos de casino y promociones increíbles.
    Con 1win, puedes acceder a múltiples formas de entretenimiento y multiplicar tus ganancias en un entorno seguro y regulado.

    ### ¿Por qué elegir 1win Venezuela?

    1. **Amplia selección de apuestas deportivas**.
    Desde el fútbol y el baloncesto hasta el tenis y los deportes electrónicos,
    1win Venezuela te ofrece una gran gama de eventos deportivos en los que puedes
    apostar. Además, nuestra plataforma te permite realizar apuestas en vivo,
    lo que agrega aún más emoción a la experiencia.

    2. **Juegos de casino de clase mundial**. Disfruta de los mejores juegos de casino en línea, desde tragamonedas hasta ruleta y
    póker. Nuestro casino cuenta con gráficos de alta calidad y un entorno interactivo para brindarte la mejor experiencia
    de juego.

    3. **Bonos y promociones atractivas**. 1win Venezuela te recompensa desde el primer momento con generosos bonos de bienvenida.
    Además, contamos con promociones regulares, que incluyen ofertas por depósito, giros gratis y torneos exclusivos para nuestros jugadores más activos.

    4. **Plataforma segura y confiable**. En 1win Venezuela, tu seguridad es
    nuestra prioridad. Utilizamos tecnología de encriptación avanzada para garantizar que todas tus transacciones y datos personales
    estén protegidos. Juega con tranquilidad sabiendo que estás
    en manos de expertos en seguridad.

    5. **Fácil acceso desde cualquier dispositivo**. No importa
    si prefieres jugar desde tu computadora, tableta o teléfono
    móvil, nuestra plataforma es totalmente accesible y optimizada para
    todos los dispositivos. ¡Disfruta de 1win donde quiera que estés!

    ### ¿Cómo empezar en 1win Venezuela?

    Registrarse en 1win Venezuela es un proceso rápido y sencillo.
    Solo necesitas seguir estos pasos:

    1. **Crea una cuenta**. Visita nuestro sitio web y completa el formulario de registro con tus datos personales.

    2. **Haz un depósito**. Elige entre nuestras opciones
    de pago seguras y realiza tu primer depósito para comenzar a jugar.

    3. **Recibe tu bono de bienvenida**. Aprovecha nuestras promociones iniciales
    y empieza a disfrutar de todas las ventajas de ser parte de
    1win Venezuela.
    4. **Explora y apuesta**. Elige entre apuestas deportivas o
    sumérgete en los emocionantes juegos de casino. ¡Las posibilidades de ganar son infinitas!

    ### Únete hoy a 1win Venezuela

    En **1win Venezuela**, te ofrecemos más que solo una plataforma de apuestas.
    Te brindamos una experiencia de juego de primer nivel, con acceso a
    las mejores oportunidades de entretenimiento
    y una atención al cliente excepcional. ¡Regístrate hoy y vive la emoción de ganar con 1win Venezuela!

    “http://www.annunciogratis.net/author/danfullwood”

  23. HaroldBig表示:

    buy semaglutide pills: rybelsus pill – rybelsus price

  24. Jeremypag表示:

    rybelsus pill buy semaglutide online rybelsus pill

  25. What’s The Current Job Market For Patio Doors Repair Professionals?

    patio doors repair

  26. ta88表示:

    You have made some decent points there. I looked on the web for more info about the issue and found most people will go along with your views on this site.

  27. Woah! I’m really loving the template/theme of this site.
    It’s simple, yet effective. A lot of times it’s tough to
    get that “perfect balance” between superb usability and appearance.
    I must say that you’ve done a fantastic job with this. Additionally, the blog loads extremely quick for me on Opera.
    Exceptional Blog!

發佈留言

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