我试图订购一个数组。我尝试了以下代码:

var groupUserCounter=[];
groupUserCounter["g1"]=1;
groupUserCounter["g2"]=2;
groupUserCounter["g3"]=3;

console.log(groupUserCounter.sort(function(a, b){return b-a}));


它返回:

Array [  ]


我该如何降序?

最佳答案

您的问题是,您正在尝试以无法使用的方式混合数组和对象。尝试将对象推入数组,如下所示:

var groupUserCounter = [];
groupUserCounter.push({'g1':1});
groupUserCounter.push({'g2':2});
groupUserCounter.push({'g3':3});
groupUserCounter.sort(function(a, b){
    var propA = Object.keys(a)[0],
        propB = Object.keys(b)[0];
    return b[propB] - a[propA];
});


或者只是完全使用一个对象,并根据Object.keys(yourKeyValueObject)编写一个排序函数,如RGraham在下面介绍的那样。

10-06 10:57