我正在尝试订购一个数组。我尝试了以下代码:
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下面所示。