Javascript 对数组的键和值进行排序,键为月份

Javascript 对数组的键和值进行排序,键为月份,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个数组,其中键为月份,值为当月的总费用 [May: 629, April: 300, March: 50] 我想根据密钥(即月份)订购此阵列。 我期望的结果是: [ March: 50, April: 300, May: 629] 我已尝试通过以下操作对密钥进行排序: var months = ["January", "February", "March", "April", "May", "June", "July", "August", "Septembe

我有一个数组,其中键为月份,值为当月的总费用

[May: 629, April: 300, March: 50]
我想根据密钥(即月份)订购此阵列。 我期望的结果是:

[ March: 50,  April: 300, May: 629]
我已尝试通过以下操作对密钥进行排序:

var months = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];

var sorted_keys = Object.keys(arr).sort(function(a,b){
  return months.indexOf(a)
           - months.indexOf(b);
});
如何对整个数组进行排序


任何帮助都将不胜感激。

尝试以下方法:

var op3MembrosDisp = [];

var w = { id: 2, name: 'karen' };
op3MembrosDisp.push(w);

var w = { id: 1, name: 'Joseph' };
op3MembrosDisp.push(w);

op3MembrosDisp.sort(
            function (a, b) {
                var aId = a.name;
                var bId = b.name;
                return ((aId < bId) ? -1 : ((aId > bId) ? 1 : 0));
            }
        );
var op3MembrosDisp=[];
var w={id:2,名称:'karen'};
OP3膜分离推送(w);
var w={id:1,名称:'Joseph'};
OP3膜分离推送(w);
op3MembrosDisp.sort(
功能(a、b){
var-aId=a.name;
var bId=b.名称;
返回((援助<投标)?-1:((援助>投标)?1:0);
}
);

假设您的输入是一个字符串数组,格式类似于“month:expense”,我们的想法是从该条目中提取月份,并根据月份对该数组进行排序。现在,为了对数组进行排序,我们使用了月份图,其中每个月份都进行了排名

var monthsHash = {
    "January": 1,
    "February": 2,
    "March": 3,
    "April": 4,
    "May": 5,
    "June": 6,
    "July": 7,
    "August": 8,
    "September": 9,
    "October": 10,
    "November": 11,
    "December": 12
};

var input = ["May: 629", "April: 300", "March: 50"]

input.sort(function (a, b) {
    var a_month = a.split(":")[0],
        b_month = b.split(":")[0],
        a_month_rank = monthsHash[a_month],
        b_month_rank = monthsHash[b_month];

    return a_month_rank - b_month_rank;
});

console.log(input);

无效语法。你得到了一个什么数组?@ASDFGerte一个仅来自排序的\u键的键数组。[“March”、“April”、“May”]所有normality中的数组都有整数索引(虽然可以分配其他属性,但强烈建议不要这样做)<代码>[May:629,April:300,March:50]是无效语法。如果您的数组看起来像
[“March”,“April”,“May”]
,则将排序从
对象.keys(arr).sort(…
更改为
arr.sort(…
),它应该可以工作