按Javascript数组中的出现次数(计数)排序 [英] sort by number of occurrence(count) in Javascript array

查看:179
本文介绍了按Javascript数组中的出现次数(计数)排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Jquery和Java的新手.有人可以根据数组中的出现次数对我进行Jquery排序吗?我尝试了各种分类方法,但没有一个起作用.

I am new to Jquery and Javascript. Can someone please help me with Jquery sorting based on number of occurrence(count) in array. I tried various sorting methods but none of them worked.

我在Javascript中有一个数组,

I have an array in Javascript which is

allTypesArray = ["4", "4","2", "2", "2", "6", "2", "6", "6"]

// here  2 is printed four times, 6 is printed thrice, and 4 is printed twice

我需要这样的输出

newTypesArray = ["2","6","4"]

我尝试过

function array_count_values(e) {
var t = {}, n = "",
    r = "";
var i = function (e) {
    var t = typeof e;
    t = t.toLowerCase();
    if (t === "object") {
        t = "array"
    }
    return t
};
var s = function (e) {
    switch (typeof e) {
    case "number":
        if (Math.floor(e) !== e) {
            return
        };
    case "string":
        if (e in this && this.hasOwnProperty(e)) {
            ++this[e]
        } else {
            this[e] = 1
        }
    }
};
r = i(e);
if (r === "array") {
    for (n in e) {
        if (e.hasOwnProperty(n)) {
            s.call(t, e[n])
        }
    }
}
return t
}
6: 3
}

输出为 {4: 2, 2: 6, 6:3}

推荐答案

也要添加我的想法(为时已晚)

var allTypesArray = ["4", "4", "2", "2", "2", "6", "2", "6", "6"];
var map = allTypesArray.reduce(function (p, c) {
    p[c] = (p[c] || 0) + 1;
    return p;
}, {});
var newTypesArray = Object.keys(map).sort(function (a, b) {
    return map[a] < map[b];
});

这篇关于按Javascript数组中的出现次数(计数)排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆