3

JS .sort()関数を十分に理解しており、多次元配列を大まかに把握していますが、少し行き詰まっています。これが私が持っているものです:

var player1 = ["bob", 20];
var player2 = ["jon", 40];
var player3 = ["tim", 10];
var scores = [player1[1], player2[1], player3[1]];

scores.sort(sortfunc);

function sortfunc(a,b){
  return a - b;
}

alert(scores);

明らかにこれはスコアを正しくソートしますが、私が欲しいのは、スコアに基づいてalert()でプレーヤー名を適切に並べ替えることです(例:tim、bob、jon)。私は必ずしも答えをまっすぐに投稿してくれる人を探しているわけではありませんが、正しい方向への少しのヒントは害にはなりません!

また、jQueryでこれを行うためのより良い(つまり、よりクリーンで、よりシンプルな、何がありますか)方法はありますか?特に問題ではないことはわかっていますが、jQueryでもどのように表示されるのか疑問に思っています。

読んでくれてありがとう。

4

1 に答える 1

4

配列全体を渡すscoresと、sortFuncが最初の要素を抽出します。

http://jsfiddle.net/PS2wS/

var player1 = ["bob", 20];
var player2 = ["jon", 40];
var player3 = ["tim", 10];
var scores = [player1, player2, player3];

scores.sort(sortfunc);

function sortfunc(a,b){
  return a[1] - b[1];
}
于 2012-04-09T03:50:26.210 に答える