我试图找出如何按该数组中的对象对数组进行排序。在这个例子中,我希望能够按玩家名称或玩家得分对数组进行排序。
var topPlayers = new Array();
$(".player").each( function(i) {
topPlayers[i] = {};
topPlayers[i]["name"] = $(this).children(".name").text();
topPlayers[i]["score"] = $(this).children(".score").text();
});
topPlayers.sort(function(a.name,b.name){return a.name-b.name}); //This is the line of code I can't figure...
答案 0 :(得分:1)
按名称排序:
topPlayers.sort(function(a, b)
{
if ( a.name > b.name ) return 1;
else if ( a.name < b.name ) return -1;
else return 0;
});
按分数排序:
topPlayers.sort(function(a, b)
{
return a.score - b.score;
});
答案 1 :(得分:0)
sort
方法采用一个进行比较的函数,并根据结果返回一个数字:
topPlayers.sort(function(a,b){
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0;
});
对于数值,您只需减去它们即可获得正确的返回值:
topPlayers.sort(function(a,b){
return a.score - b.score;
});