-1

我试图弄清楚如何按该数组中的对象对我的数组进行排序。在此示例中,我希望能够按玩家姓名或玩家分数对数组进行排序。

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...
4

2 回答 2

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;
}); 
于 2012-11-12T00:25:58.360 回答
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;
});
于 2012-11-12T00:25:40.453 回答