-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 に答える