Javascript在数组中的顺序

Tol*_*lar 0 javascript

我正在尝试订购一个数组.我试过以下代码:

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

console.log(groupUserCounter.sort(function(a, b){return b-a}));
Run Code Online (Sandbox Code Playgroud)

它返回:

Array [  ]
Run Code Online (Sandbox Code Playgroud)

我该怎么做降序?

Shi*_*lly 5

您的问题是您尝试以不起作用的方式混合数组和对象.尝试将对象推送到这样的数组中:

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];
});
Run Code Online (Sandbox Code Playgroud)

或者只是完全使用一个对象并编写一个基于Object.keys(yourKeyValueObject)的排序函数,如下面的RGraham所示.